diff options
author | Robert Collins <robertc@robertcollins.net> | 2010-01-05 16:51:14 +1100 |
---|---|---|
committer | Robert Collins <robertc@robertcollins.net> | 2010-01-05 16:51:14 +1100 |
commit | b8c3520e485623ca657cda9616b400ac296de9ff (patch) | |
tree | 860a7242cbfedbe5354a53364b9ae0a2173da9d8 | |
parent | 075c5cc3fbdf85a71a4c55d1bc92de941eb65626 (diff) | |
download | testresources-b8c3520e485623ca657cda9616b400ac296de9ff.tar.gz |
Fix OptimisingTestSuite.addTest when adding other OptimisingTestSuite instances, which fixes testresources.TestLoader not generating optimising runs.
-rw-r--r-- | NEWS | 11 | ||||
-rw-r--r-- | lib/testresources/__init__.py | 2 | ||||
-rw-r--r-- | lib/testresources/tests/test_optimising_test_suite.py | 9 |
3 files changed, 21 insertions, 1 deletions
@@ -20,6 +20,17 @@ API CHANGES INTERNALS ~~~~~~~~~ +0.2.2 +----- + +BUG FIXES +~~~~~~~~~ + +* OptimisingTestSuite.addTest was not unpacking OptimisingTestSuite instances. + When using testresources.TestLoader to load tests this was generating an + unoptimised layout, with each test in its own little suite, and no resource + sharing happening. + 0.2.1 ------ diff --git a/lib/testresources/__init__.py b/lib/testresources/__init__.py index 6da981f..b9854a5 100644 --- a/lib/testresources/__init__.py +++ b/lib/testresources/__init__.py @@ -65,7 +65,7 @@ class OptimisingTestSuite(unittest.TestSuite): except TypeError: unittest.TestSuite.addTest(self, test_case_or_suite) return - if unittest.TestSuite == test_case_or_suite.__class__: + if test_case_or_suite.__class__ in (unittest.TestSuite, OptimisingTestSuite): for test in tests: self.adsorbSuite(test) else: diff --git a/lib/testresources/tests/test_optimising_test_suite.py b/lib/testresources/tests/test_optimising_test_suite.py index 4176bf7..bd09d42 100644 --- a/lib/testresources/tests/test_optimising_test_suite.py +++ b/lib/testresources/tests/test_optimising_test_suite.py @@ -101,6 +101,15 @@ class TestOptimisingTestSuite(testtools.TestCase): self.optimising_suite.addTest(suite) self.assertEqual([case], self.optimising_suite._tests) + def testAddTestOptimisingTestSuite(self): + # when adding an optimising test suite, it should be unpacked. + case = self.makeTestCase() + suite1 = testresources.OptimisingTestSuite([case]) + suite2 = testresources.OptimisingTestSuite([case]) + self.optimising_suite.addTest(suite1) + self.optimising_suite.addTest(suite2) + self.assertEqual([case, case], self.optimising_suite._tests) + def testAddFlattensStandardSuiteStructure(self): # addTest will get rid of all unittest.TestSuite structure when adding # a test, no matter how much nesting is going on. |