diff options
author | Gary Oberbrunner <garyo@oberbrunner.com> | 2011-02-13 19:27:20 (GMT) |
---|---|---|
committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2011-02-13 19:27:20 (GMT) |
commit | 18097a7686a70d499f8fc83001bf517b06a61864 (patch) | |
tree | 9ae7588527a58bbc44eb5af1efed3632b652f45d /QMTest | |
parent | 2314323fb1826ab4e1950fe79637292a9e19d9a5 (diff) | |
download | SCons-18097a7686a70d499f8fc83001bf517b06a61864.zip SCons-18097a7686a70d499f8fc83001bf517b06a61864.tar.gz SCons-18097a7686a70d499f8fc83001bf517b06a61864.tar.bz2 |
Apply patch from issue #2710. Test harness fixes only, no user impact (no doc/changelog). Predecessor to fixing #2708.
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): |