diff options
author | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-05-08 17:06:25 (GMT) |
---|---|---|
committer | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-05-08 17:06:25 (GMT) |
commit | 9c164af6c35cc0a0b21162d74bd7ea572731ed2c (patch) | |
tree | 6ce4a91fc6328b49b45151eca1fbbedd404dfc4d | |
parent | 7daf0e4aa13b98d5217dc49e5f87e7a4007aee33 (diff) | |
download | cpython-9c164af6c35cc0a0b21162d74bd7ea572731ed2c.zip cpython-9c164af6c35cc0a0b21162d74bd7ea572731ed2c.tar.gz cpython-9c164af6c35cc0a0b21162d74bd7ea572731ed2c.tar.bz2 |
unittest: issue 8301. Adding functions to test suites no longer crashes.
-rw-r--r-- | Lib/unittest/suite.py | 7 | ||||
-rw-r--r-- | Lib/unittest/test/test_suite.py | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/Lib/unittest/suite.py b/Lib/unittest/suite.py index 0dd2dc5..cf6d94a 100644 --- a/Lib/unittest/suite.py +++ b/Lib/unittest/suite.py @@ -119,7 +119,12 @@ class TestSuite(BaseTestSuite): if getattr(currentClass, "__unittest_skip__", False): 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) if setUpClass is not None: diff --git a/Lib/unittest/test/test_suite.py b/Lib/unittest/test/test_suite.py index 7cd2b89..2b8d678 100644 --- a/Lib/unittest/test/test_suite.py +++ b/Lib/unittest/test/test_suite.py @@ -290,6 +290,15 @@ class Test_TestSuite(unittest.TestCase, TestEquality): suite = unittest.TestSuite() 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__': unittest.main() |