unittest: issue 8301. Adding functions to test suites no longer crashes.

This commit is contained in:
Michael Foord 2010-05-08 17:06:25 +00:00
parent 7daf0e4aa1
commit 9c164af6c3
2 changed files with 15 additions and 1 deletions

View File

@ -119,7 +119,12 @@ class TestSuite(BaseTestSuite):
if getattr(currentClass, "__unittest_skip__", False): if getattr(currentClass, "__unittest_skip__", False):
return return
currentClass._classSetupFailed = False try:
currentClass._classSetupFailed = False
except TypeError:
# test may actually be a function
# so its class will be a builtin-type
pass
setUpClass = getattr(currentClass, 'setUpClass', None) setUpClass = getattr(currentClass, 'setUpClass', None)
if setUpClass is not None: if setUpClass is not None:

View File

@ -290,6 +290,15 @@ class Test_TestSuite(unittest.TestCase, TestEquality):
suite = unittest.TestSuite() suite = unittest.TestSuite()
self.assertRaises(TypeError, suite.addTests, "foo") self.assertRaises(TypeError, suite.addTests, "foo")
def test_function_in_suite(self):
def f(_):
pass
suite = unittest.TestSuite()
suite.addTest(f)
# when the bug is fixed this line will not crash
suite.run(unittest.TestResult())
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()