[Python-checkins] r80997 - in python/trunk/Lib/unittest: suite.py test/test_suite.py

michael.foord python-checkins at python.org
Sat May 8 19:06:25 CEST 2010


Author: michael.foord
Date: Sat May  8 19:06:25 2010
New Revision: 80997

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

Modified:
   python/trunk/Lib/unittest/suite.py
   python/trunk/Lib/unittest/test/test_suite.py

Modified: python/trunk/Lib/unittest/suite.py
==============================================================================
--- python/trunk/Lib/unittest/suite.py	(original)
+++ python/trunk/Lib/unittest/suite.py	Sat May  8 19:06:25 2010
@@ -119,7 +119,12 @@
         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:

Modified: python/trunk/Lib/unittest/test/test_suite.py
==============================================================================
--- python/trunk/Lib/unittest/test/test_suite.py	(original)
+++ python/trunk/Lib/unittest/test/test_suite.py	Sat May  8 19:06:25 2010
@@ -290,6 +290,15 @@
         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()


More information about the Python-checkins mailing list