Merge "Allow _run_cmd to run commands in any directory."

This commit is contained in:
Jenkins 2014-05-30 02:21:54 +00:00 committed by Gerrit Code Review
commit a38dc208cf
1 changed files with 6 additions and 2 deletions

View File

@ -119,14 +119,18 @@ class BaseTestCase(testtools.TestCase, testresources.ResourcedTestCase):
def run_setup(self, *args, **kwargs):
return self._run_cmd(sys.executable, ('setup.py',) + args, **kwargs)
def _run_cmd(self, cmd, args=[], allow_fail=True):
def _run_cmd(self, cmd, args=[], allow_fail=True, cwd=None):
"""Run a command in the root of the test working copy.
Runs a command, with the given argument list, in the root of the test
working copy--returns the stdout and stderr streams and the exit code
from the subprocess.
:param cwd: If falsy run within the test package dir, otherwise run
within the named path.
"""
result = _run_cmd([cmd] + list(args), cwd=self.package_dir)
cwd = cwd or self.package_dir
result = _run_cmd([cmd] + list(args), cwd=cwd)
if result[2] and not allow_fail:
raise Exception("Command failed retcode=%s" % result[2])
return result