add: run_check() to tests, so we get a warning on nonzero returncodes
This commit is contained in:
@@ -124,6 +124,20 @@ def run(cmd, cwd=None):
|
|||||||
return stdout, stderr, returncode
|
return stdout, stderr, returncode
|
||||||
|
|
||||||
|
|
||||||
|
def run_check(cmd, cwd=None, returncode_ok=(0,)):
|
||||||
|
stdout, stderr, returncode = run(cmd, cwd)
|
||||||
|
if returncode in returncode_ok:
|
||||||
|
return True
|
||||||
|
|
||||||
|
# verbose will have already printed
|
||||||
|
if not VERBOSE:
|
||||||
|
print(">>> ", " ".join(cmd))
|
||||||
|
sys.stdout.write(" stdout: %s\n" % stdout.strip())
|
||||||
|
sys.stdout.write(" stderr: %s\n" % stderr.strip())
|
||||||
|
sys.stdout.write(" return: %d\n" % returncode)
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
class CHDir:
|
class CHDir:
|
||||||
__slots__ = (
|
__slots__ = (
|
||||||
"dir_old",
|
"dir_old",
|
||||||
@@ -171,18 +185,26 @@ class StdIO:
|
|||||||
|
|
||||||
|
|
||||||
def svn_repo_create(id_, dirname):
|
def svn_repo_create(id_, dirname):
|
||||||
run(["svnadmin", "create", id_], cwd=dirname)
|
return run_check(["svnadmin", "create", id_], cwd=dirname)[2]
|
||||||
|
|
||||||
|
|
||||||
def svn_repo_checkout(repo, path):
|
def svn_repo_checkout(repo, path):
|
||||||
run(["svn", "checkout", repo, path])
|
return run_check(["svn", "checkout", repo, path])[2]
|
||||||
|
|
||||||
|
|
||||||
def svn_repo_populate(path):
|
def svn_repo_populate(path):
|
||||||
dummy_file = os.path.join(path, "file1")
|
dummy_file = os.path.join(path, "file1")
|
||||||
run(["touch", dummy_file])
|
file_quick_touch(path)
|
||||||
run(["svn", "add", dummy_file])
|
|
||||||
run(["svn", "commit", "-m", "First commit"])
|
returncode = run(["svn", "add", dummy_file])[2]
|
||||||
|
if (returncode != 0):
|
||||||
|
return False
|
||||||
|
|
||||||
|
returncode = run(["svn", "commit", "-m", "First commit"])[2]
|
||||||
|
if (returncode != 0):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
def bam_run(argv, cwd=None):
|
def bam_run(argv, cwd=None):
|
||||||
@@ -234,6 +256,13 @@ def file_quick_read(path, filepart=None, mode='rb'):
|
|||||||
return f.read()
|
return f.read()
|
||||||
|
|
||||||
|
|
||||||
|
def file_quick_touch(path, filepart=None, times=None):
|
||||||
|
if filepart is not None:
|
||||||
|
path = os.path.join(path, filepart)
|
||||||
|
with open(path, 'a'):
|
||||||
|
os.utime(path, times)
|
||||||
|
|
||||||
|
|
||||||
def wait_for_input():
|
def wait_for_input():
|
||||||
"""for debugging,
|
"""for debugging,
|
||||||
so we can inspect the state of the system before the test finished.
|
so we can inspect the state of the system before the test finished.
|
||||||
@@ -362,10 +391,12 @@ class BamSessionTestCase(unittest.TestCase):
|
|||||||
path_svn_checkout = os.path.join(self.path_remote_store, "svn_checkout")
|
path_svn_checkout = os.path.join(self.path_remote_store, "svn_checkout")
|
||||||
|
|
||||||
# Create an SVN checkout of the freshly created repo
|
# Create an SVN checkout of the freshly created repo
|
||||||
svn_repo_checkout("file://%s" % os.path.join(path_svn_repo, self.proj_name), path_svn_checkout)
|
if not svn_repo_checkout("file://%s" % os.path.join(path_svn_repo, self.proj_name), path_svn_checkout):
|
||||||
|
self.fail()
|
||||||
|
|
||||||
# Pupulate the repo with an empty file
|
# Populate the repo with an empty file
|
||||||
svn_repo_populate(os.path.join(path_svn_checkout, self.proj_name))
|
if not svn_repo_populate(os.path.join(path_svn_checkout, self.proj_name)):
|
||||||
|
self.fail()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
# input('Wait:')
|
# input('Wait:')
|
||||||
@@ -515,8 +546,6 @@ class BamBlendTest(BamSessionTestCase):
|
|||||||
create_id,
|
create_id,
|
||||||
str(returncode_test),
|
str(returncode_test),
|
||||||
))
|
))
|
||||||
print(" stdout=%s" % stdout.decode())
|
|
||||||
print(" stderr=%s" % stderr.decode())
|
|
||||||
return stdout, stderr, returncode
|
return stdout, stderr, returncode
|
||||||
|
|
||||||
def test_create_all(self):
|
def test_create_all(self):
|
||||||
|
Reference in New Issue
Block a user