summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Collins <robertc@robertcollins.net>2010-01-05 16:51:14 +1100
committerRobert Collins <robertc@robertcollins.net>2010-01-05 16:51:14 +1100
commitb8c3520e485623ca657cda9616b400ac296de9ff (patch)
tree860a7242cbfedbe5354a53364b9ae0a2173da9d8
parent075c5cc3fbdf85a71a4c55d1bc92de941eb65626 (diff)
downloadtestresources-b8c3520e485623ca657cda9616b400ac296de9ff.tar.gz
Fix OptimisingTestSuite.addTest when adding other OptimisingTestSuite instances, which fixes testresources.TestLoader not generating optimising runs.
-rw-r--r--NEWS11
-rw-r--r--lib/testresources/__init__.py2
-rw-r--r--lib/testresources/tests/test_optimising_test_suite.py9
3 files changed, 21 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index e47b9fa..37d91f9 100644
--- a/NEWS
+++ b/NEWS
@@ -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.