[Python-checkins] r81764 - in python/trunk/Lib/unittest: suite.py test/test_case.py test/test_setups.py

michael.foord python-checkins at python.org
Sat Jun 5 22:59:00 CEST 2010


Author: michael.foord
Date: Sat Jun  5 22:59:00 2010
New Revision: 81764

Log:
Tests for issue 8302, skipped test in a setUpClass or a setUpModule are reported as skips rather than errors.

Modified:
   python/trunk/Lib/unittest/suite.py
   python/trunk/Lib/unittest/test/test_case.py
   python/trunk/Lib/unittest/test/test_setups.py

Modified: python/trunk/Lib/unittest/suite.py
==============================================================================
--- python/trunk/Lib/unittest/suite.py	(original)
+++ python/trunk/Lib/unittest/suite.py	Sat Jun  5 22:59:00 2010
@@ -133,7 +133,7 @@
             except Exception as e:
                 currentClass._classSetupFailed = True
                 className = util.strclass(currentClass)
-                errorName = 'classSetUp (%s)' % className
+                errorName = 'setUpClass (%s)' % className
                 self._addClassOrModuleLevelException(result, e, errorName)
 
 
@@ -213,7 +213,7 @@
                 tearDownClass()
             except Exception, e:
                 className = util.strclass(previousClass)
-                errorName = 'classTearDown (%s)' % className
+                errorName = 'tearDownClass (%s)' % className
                 self._addClassOrModuleLevelException(result, e, errorName)
 
 

Modified: python/trunk/Lib/unittest/test/test_case.py
==============================================================================
--- python/trunk/Lib/unittest/test/test_case.py	(original)
+++ python/trunk/Lib/unittest/test/test_case.py	Sat Jun  5 22:59:00 2010
@@ -639,6 +639,10 @@
         message = self._truncateMessage('foo', 'bar')
         self.assertEqual(message, 'foobar')
 
+        self.maxDiff = 4
+        message = self._truncateMessage('foo', 'bar')
+        self.assertEqual(message, 'foobar')
+
     def testAssertDictEqualTruncates(self):
         test = unittest.TestCase('assertEqual')
         def truncate(msg, diff):

Modified: python/trunk/Lib/unittest/test/test_setups.py
==============================================================================
--- python/trunk/Lib/unittest/test/test_setups.py	(original)
+++ python/trunk/Lib/unittest/test/test_setups.py	Sat Jun  5 22:59:00 2010
@@ -112,7 +112,7 @@
         self.assertEqual(len(result.errors), 1)
         error, _ = result.errors[0]
         self.assertEqual(str(error),
-                    'classSetUp (%s.BrokenTest)' % __name__)
+                    'setUpClass (%s.BrokenTest)' % __name__)
 
     def test_error_in_teardown_class(self):
         class Test(unittest.TestCase):
@@ -145,7 +145,7 @@
 
         error, _ = result.errors[0]
         self.assertEqual(str(error),
-                    'classTearDown (%s.Test)' % __name__)
+                    'tearDownClass (%s.Test)' % __name__)
 
     def test_class_not_torndown_when_setup_fails(self):
         class Test(unittest.TestCase):
@@ -400,6 +400,45 @@
         error, _ = result.errors[0]
         self.assertEqual(str(error), 'tearDownModule (Module)')
 
+    def test_skiptest_in_setupclass(self):
+        class Test(unittest.TestCase):
+            @classmethod
+            def setUpClass(cls):
+                raise unittest.SkipTest('foo')
+            def test_one(self):
+                pass
+            def test_two(self):
+                pass
+
+        result = self.runTests(Test)
+        self.assertEqual(result.testsRun, 0)
+        self.assertEqual(len(result.errors), 0)
+        self.assertEqual(len(result.skipped), 1)
+        skipped = result.skipped[0][0]
+        self.assertEqual(str(skipped), 'setUpClass (%s.Test)' % __name__)
+
+    def test_skiptest_in_setupmodule(self):
+        class Test(unittest.TestCase):
+            def test_one(self):
+                pass
+            def test_two(self):
+                pass
+
+        class Module(object):
+            @staticmethod
+            def setUpModule():
+                raise unittest.SkipTest('foo')
+
+        Test.__module__ = 'Module'
+        sys.modules['Module'] = Module
+
+        result = self.runTests(Test)
+        self.assertEqual(result.testsRun, 0)
+        self.assertEqual(len(result.errors), 0)
+        self.assertEqual(len(result.skipped), 1)
+        skipped = result.skipped[0][0]
+        self.assertEqual(str(skipped), 'setUpModule (Module)')
+
 
 if __name__ == '__main__':
     unittest.main()


More information about the Python-checkins mailing list