diff options
Diffstat (limited to 'QMTest')
-rw-r--r-- | QMTest/TestCommon.py | 4 | ||||
-rw-r--r-- | QMTest/TestCommonTests.py | 33 |
2 files changed, 35 insertions, 2 deletions
diff --git a/QMTest/TestCommon.py b/QMTest/TestCommon.py index 37d3f9c..c677226 100644 --- a/QMTest/TestCommon.py +++ b/QMTest/TestCommon.py @@ -417,7 +417,7 @@ class TestCommon(TestCmd): if any of the files does not exist. """ files = [is_List(x) and os.path.join(*x) or x for x in files] - missing = [x for x in files if not os.path.exists(x)] + missing = [x for x in files if not os.path.exists(x) and not os.path.islink(x) ] if missing: print "Missing files: `%s'" % "', `".join(missing) self.fail_test(missing) @@ -493,7 +493,7 @@ class TestCommon(TestCmd): Exits FAILED if any of the files exists. """ files = [is_List(x) and os.path.join(*x) or x for x in files] - existing = list(filter(os.path.exists, files)) + existing = [x for x in files if os.path.exists(x) or os.path.islink(x)] if existing: print "Unexpected files exist: `%s'" % "', `".join(existing) self.fail_test(existing) diff --git a/QMTest/TestCommonTests.py b/QMTest/TestCommonTests.py index 8bf64fc..a19fc83 100644 --- a/QMTest/TestCommonTests.py +++ b/QMTest/TestCommonTests.py @@ -974,6 +974,23 @@ class must_exist_TestCase(TestCommonTestCase): stderr = run_env.stderr() assert stderr == "PASSED\n", stderr + def test_broken_link(self) : + """Test must_exist(): exists but it is a broken link""" + run_env = self.run_env + + script = lstrip("""\ + from TestCommon import TestCommon + tc = TestCommon(workdir='') + tc.symlink('badtarget', "brokenlink") + tc.must_exist('brokenlink') + tc.pass_test() + """) + run_env.run(program=sys.executable, stdin=script) + stdout = run_env.stdout() + assert stdout == "", stdout + stderr = run_env.stderr() + assert stderr == "PASSED\n", stderr + class must_match_TestCase(TestCommonTestCase): @@ -1498,6 +1515,22 @@ class must_not_exist_TestCase(TestCommonTestCase): stderr = run_env.stderr() assert stderr == "PASSED\n", stderr + def test_existing_broken_link(self): + """Test must_not_exist(): exists but it is a broken link""" + run_env = self.run_env + + script = lstrip("""\ + from TestCommon import TestCommon + tc = TestCommon(workdir='') + tc.symlink('badtarget', 'brokenlink') + tc.must_not_exist('brokenlink') + tc.pass_test() + """) + run_env.run(program=sys.executable, stdin=script) + stdout = run_env.stdout() + assert stdout == "Unexpected files exist: `brokenlink'\n", stdout + stderr = run_env.stderr() + assert stderr.find("FAILED") != -1, stderr class run_TestCase(TestCommonTestCase): |