unittest.TestLoader creates a TestSuite before calling load_tests. Issue 7799.

This commit is contained in:
Michael Foord 2010-02-06 00:22:26 +00:00
parent 2373926964
commit 0877060f86
2 changed files with 4 additions and 1 deletions

View file

@ -272,12 +272,14 @@ class Test_TestLoader(TestCase):
load_tests_args = [] load_tests_args = []
def load_tests(loader, tests, pattern): def load_tests(loader, tests, pattern):
self.assertIsInstance(tests, unittest.TestSuite)
load_tests_args.extend((loader, tests, pattern)) load_tests_args.extend((loader, tests, pattern))
return tests return tests
m.load_tests = load_tests m.load_tests = load_tests
loader = unittest.TestLoader() loader = unittest.TestLoader()
suite = loader.loadTestsFromModule(m) suite = loader.loadTestsFromModule(m)
self.assertIsInstance(suite, unittest.TestSuite)
self.assertEquals(load_tests_args, [loader, suite, None]) self.assertEquals(load_tests_args, [loader, suite, None])
load_tests_args = [] load_tests_args = []

View file

@ -71,9 +71,10 @@ class TestLoader(object):
tests.append(self.loadTestsFromTestCase(obj)) tests.append(self.loadTestsFromTestCase(obj))
load_tests = getattr(module, 'load_tests', None) load_tests = getattr(module, 'load_tests', None)
tests = self.suiteClass(tests)
if use_load_tests and load_tests is not None: if use_load_tests and load_tests is not None:
return load_tests(self, tests, None) return load_tests(self, tests, None)
return self.suiteClass(tests) return tests
def loadTestsFromName(self, name, module=None): def loadTestsFromName(self, name, module=None):
"""Return a suite of all tests cases given a string specifier. """Return a suite of all tests cases given a string specifier.