summaryrefslogtreecommitdiffstats
path: root/Lib/unittest
diff options
context:
space:
mode:
authorMichael Foord <fuzzyman@voidspace.org.uk>2010-06-05 20:59:00 (GMT)
committerMichael Foord <fuzzyman@voidspace.org.uk>2010-06-05 20:59:00 (GMT)
commitdb919f01884e8c93506db7d54325d4e68e61861b (patch)
tree93bb00af45ddfa1b07df67e95ef362e982c8ad4e /Lib/unittest
parentc1d7c5b7fab5709f1c59f53463aab8ae359cbe8c (diff)
downloadcpython-db919f01884e8c93506db7d54325d4e68e61861b.zip
cpython-db919f01884e8c93506db7d54325d4e68e61861b.tar.gz
cpython-db919f01884e8c93506db7d54325d4e68e61861b.tar.bz2
Tests for issue 8302, skipped test in a setUpClass or a setUpModule are reported as skips rather than errors.
Diffstat (limited to 'Lib/unittest')
-rw-r--r--Lib/unittest/suite.py4
-rw-r--r--Lib/unittest/test/test_case.py4
-rw-r--r--Lib/unittest/test/test_setups.py43
3 files changed, 47 insertions, 4 deletions
diff --git a/Lib/unittest/suite.py b/Lib/unittest/suite.py
index 74d5800..bed9044 100644
--- a/Lib/unittest/suite.py
+++ b/Lib/unittest/suite.py
@@ -133,7 +133,7 @@ class TestSuite(BaseTestSuite):
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 @@ class TestSuite(BaseTestSuite):
tearDownClass()
except Exception, e:
className = util.strclass(previousClass)
- errorName = 'classTearDown (%s)' % className
+ errorName = 'tearDownClass (%s)' % className
self._addClassOrModuleLevelException(result, e, errorName)
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py
index 6759a18..a395fe0 100644
--- a/Lib/unittest/test/test_case.py
+++ b/Lib/unittest/test/test_case.py
@@ -639,6 +639,10 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing):
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):
diff --git a/Lib/unittest/test/test_setups.py b/Lib/unittest/test/test_setups.py
index 16fd65b..aff7ab2 100644
--- a/Lib/unittest/test/test_setups.py
+++ b/Lib/unittest/test/test_setups.py
@@ -112,7 +112,7 @@ class TestSetups(unittest.TestCase):
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 @@ class TestSetups(unittest.TestCase):
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 @@ class TestSetups(unittest.TestCase):
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()