gh-106300: Improve errors testing in test_unittest.test_runner (GH-106737)
Use a custom exception to prevent unintentional silence of actual errors.
This commit is contained in:
parent
f6099871fa
commit
fd9d70a94d
@ -24,6 +24,13 @@ def getRunner():
|
|||||||
stream=io.StringIO())
|
stream=io.StringIO())
|
||||||
|
|
||||||
|
|
||||||
|
class CustomError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
# For test output compat:
|
||||||
|
CustomErrorRepr = f"{__name__ + '.' if __name__ != '__main__' else ''}CustomError"
|
||||||
|
|
||||||
|
|
||||||
def runTests(*cases):
|
def runTests(*cases):
|
||||||
suite = unittest.TestSuite()
|
suite = unittest.TestSuite()
|
||||||
for case in cases:
|
for case in cases:
|
||||||
@ -46,7 +53,7 @@ def cleanup(ordering, blowUp=False):
|
|||||||
ordering.append('cleanup_good')
|
ordering.append('cleanup_good')
|
||||||
else:
|
else:
|
||||||
ordering.append('cleanup_exc')
|
ordering.append('cleanup_exc')
|
||||||
raise Exception('CleanUpExc')
|
raise CustomError('CleanUpExc')
|
||||||
|
|
||||||
|
|
||||||
class TestCM:
|
class TestCM:
|
||||||
@ -108,8 +115,8 @@ class TestCleanUp(unittest.TestCase):
|
|||||||
result = unittest.TestResult()
|
result = unittest.TestResult()
|
||||||
outcome = test._outcome = _Outcome(result=result)
|
outcome = test._outcome = _Outcome(result=result)
|
||||||
|
|
||||||
CleanUpExc = Exception('foo')
|
CleanUpExc = CustomError('foo')
|
||||||
exc2 = Exception('bar')
|
exc2 = CustomError('bar')
|
||||||
def cleanup1():
|
def cleanup1():
|
||||||
raise CleanUpExc
|
raise CleanUpExc
|
||||||
|
|
||||||
@ -125,10 +132,10 @@ class TestCleanUp(unittest.TestCase):
|
|||||||
(_, msg2), (_, msg1) = result.errors
|
(_, msg2), (_, msg1) = result.errors
|
||||||
self.assertIn('in cleanup1', msg1)
|
self.assertIn('in cleanup1', msg1)
|
||||||
self.assertIn('raise CleanUpExc', msg1)
|
self.assertIn('raise CleanUpExc', msg1)
|
||||||
self.assertIn('Exception: foo', msg1)
|
self.assertIn(f'{CustomErrorRepr}: foo', msg1)
|
||||||
self.assertIn('in cleanup2', msg2)
|
self.assertIn('in cleanup2', msg2)
|
||||||
self.assertIn('raise exc2', msg2)
|
self.assertIn('raise exc2', msg2)
|
||||||
self.assertIn('Exception: bar', msg2)
|
self.assertIn(f'{CustomErrorRepr}: bar', msg2)
|
||||||
|
|
||||||
def testCleanupInRun(self):
|
def testCleanupInRun(self):
|
||||||
blowUp = False
|
blowUp = False
|
||||||
@ -139,7 +146,7 @@ class TestCleanUp(unittest.TestCase):
|
|||||||
ordering.append('setUp')
|
ordering.append('setUp')
|
||||||
test.addCleanup(cleanup2)
|
test.addCleanup(cleanup2)
|
||||||
if blowUp:
|
if blowUp:
|
||||||
raise Exception('foo')
|
raise CustomError('foo')
|
||||||
|
|
||||||
def testNothing(self):
|
def testNothing(self):
|
||||||
ordering.append('test')
|
ordering.append('test')
|
||||||
@ -280,7 +287,7 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
ordering.append('setUpClass')
|
ordering.append('setUpClass')
|
||||||
cls.addClassCleanup(cleanup, ordering)
|
cls.addClassCleanup(cleanup, ordering)
|
||||||
if blowUp:
|
if blowUp:
|
||||||
raise Exception()
|
raise CustomError()
|
||||||
def testNothing(self):
|
def testNothing(self):
|
||||||
ordering.append('test')
|
ordering.append('test')
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -306,7 +313,7 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
ordering.append('setUpClass')
|
ordering.append('setUpClass')
|
||||||
cls.addClassCleanup(cleanup, ordering)
|
cls.addClassCleanup(cleanup, ordering)
|
||||||
if blowUp:
|
if blowUp:
|
||||||
raise Exception()
|
raise CustomError()
|
||||||
def testNothing(self):
|
def testNothing(self):
|
||||||
ordering.append('test')
|
ordering.append('test')
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -346,7 +353,7 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
ordering = []
|
ordering = []
|
||||||
blowUp = True
|
blowUp = True
|
||||||
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
||||||
with self.assertRaises(Exception) as cm:
|
with self.assertRaises(CustomError) as cm:
|
||||||
suite.debug()
|
suite.debug()
|
||||||
self.assertEqual(str(cm.exception), 'CleanUpExc')
|
self.assertEqual(str(cm.exception), 'CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
@ -366,10 +373,10 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
ordering.append('tearDownClass')
|
ordering.append('tearDownClass')
|
||||||
raise Exception('TearDownClassExc')
|
raise CustomError('TearDownClassExc')
|
||||||
|
|
||||||
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
||||||
with self.assertRaises(Exception) as cm:
|
with self.assertRaises(CustomError) as cm:
|
||||||
suite.debug()
|
suite.debug()
|
||||||
self.assertEqual(str(cm.exception), 'TearDownClassExc')
|
self.assertEqual(str(cm.exception), 'TearDownClassExc')
|
||||||
self.assertEqual(ordering, ['setUpClass', 'test', 'tearDownClass'])
|
self.assertEqual(ordering, ['setUpClass', 'test', 'tearDownClass'])
|
||||||
@ -379,7 +386,7 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
ordering = []
|
ordering = []
|
||||||
blowUp = True
|
blowUp = True
|
||||||
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
||||||
with self.assertRaises(Exception) as cm:
|
with self.assertRaises(CustomError) as cm:
|
||||||
suite.debug()
|
suite.debug()
|
||||||
self.assertEqual(str(cm.exception), 'TearDownClassExc')
|
self.assertEqual(str(cm.exception), 'TearDownClassExc')
|
||||||
self.assertEqual(ordering, ['setUpClass', 'test', 'tearDownClass'])
|
self.assertEqual(ordering, ['setUpClass', 'test', 'tearDownClass'])
|
||||||
@ -392,16 +399,22 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def cleanup1():
|
def cleanup1():
|
||||||
raise Exception('cleanup1')
|
raise CustomError('cleanup1')
|
||||||
|
|
||||||
def cleanup2():
|
def cleanup2():
|
||||||
raise Exception('cleanup2')
|
raise CustomError('cleanup2')
|
||||||
|
|
||||||
TestableTest.addClassCleanup(cleanup1)
|
TestableTest.addClassCleanup(cleanup1)
|
||||||
TestableTest.addClassCleanup(cleanup2)
|
TestableTest.addClassCleanup(cleanup2)
|
||||||
with self.assertRaises(Exception) as e:
|
TestableTest.doClassCleanups()
|
||||||
TestableTest.doClassCleanups()
|
|
||||||
self.assertEqual(e, 'cleanup1')
|
self.assertEqual(len(TestableTest.tearDown_exceptions), 2)
|
||||||
|
|
||||||
|
e1, e2 = TestableTest.tearDown_exceptions
|
||||||
|
self.assertIsInstance(e1[1], CustomError)
|
||||||
|
self.assertEqual(str(e1[1]), 'cleanup2')
|
||||||
|
self.assertIsInstance(e2[1], CustomError)
|
||||||
|
self.assertEqual(str(e2[1]), 'cleanup1')
|
||||||
|
|
||||||
def test_with_errors_addCleanUp(self):
|
def test_with_errors_addCleanUp(self):
|
||||||
ordering = []
|
ordering = []
|
||||||
@ -421,7 +434,7 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
|
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpClass', 'setUp', 'cleanup_exc',
|
['setUpClass', 'setUp', 'cleanup_exc',
|
||||||
'tearDownClass', 'cleanup_good'])
|
'tearDownClass', 'cleanup_good'])
|
||||||
@ -444,7 +457,7 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
|
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpClass', 'setUp', 'test', 'cleanup_good',
|
['setUpClass', 'setUp', 'test', 'cleanup_good',
|
||||||
'tearDownClass', 'cleanup_exc'])
|
'tearDownClass', 'cleanup_exc'])
|
||||||
@ -460,11 +473,11 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
ordering.append('setUpClass')
|
ordering.append('setUpClass')
|
||||||
cls.addClassCleanup(cleanup, ordering, blowUp=True)
|
cls.addClassCleanup(cleanup, ordering, blowUp=True)
|
||||||
if class_blow_up:
|
if class_blow_up:
|
||||||
raise Exception('ClassExc')
|
raise CustomError('ClassExc')
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
ordering.append('setUp')
|
ordering.append('setUp')
|
||||||
if method_blow_up:
|
if method_blow_up:
|
||||||
raise Exception('MethodExc')
|
raise CustomError('MethodExc')
|
||||||
def testNothing(self):
|
def testNothing(self):
|
||||||
ordering.append('test')
|
ordering.append('test')
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -473,7 +486,7 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
|
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpClass', 'setUp', 'test',
|
['setUpClass', 'setUp', 'test',
|
||||||
'tearDownClass', 'cleanup_exc'])
|
'tearDownClass', 'cleanup_exc'])
|
||||||
@ -483,9 +496,9 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
method_blow_up = False
|
method_blow_up = False
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: ClassExc')
|
f'{CustomErrorRepr}: ClassExc')
|
||||||
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpClass', 'cleanup_exc'])
|
['setUpClass', 'cleanup_exc'])
|
||||||
|
|
||||||
@ -494,9 +507,9 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
method_blow_up = True
|
method_blow_up = True
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: MethodExc')
|
f'{CustomErrorRepr}: MethodExc')
|
||||||
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpClass', 'setUp', 'tearDownClass',
|
['setUpClass', 'setUp', 'tearDownClass',
|
||||||
'cleanup_exc'])
|
'cleanup_exc'])
|
||||||
@ -513,11 +526,11 @@ class TestClassCleanup(unittest.TestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
ordering.append('tearDownClass')
|
ordering.append('tearDownClass')
|
||||||
raise Exception('TearDownExc')
|
raise CustomError('TearDownExc')
|
||||||
|
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: TearDownExc')
|
f'{CustomErrorRepr}: TearDownExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpClass', 'test', 'tearDownClass', 'cleanup_good'])
|
['setUpClass', 'test', 'tearDownClass', 'cleanup_good'])
|
||||||
|
|
||||||
@ -620,7 +633,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
module_cleanups.append((3, args, kwargs))
|
module_cleanups.append((3, args, kwargs))
|
||||||
|
|
||||||
def module_cleanup_bad(*args, **kwargs):
|
def module_cleanup_bad(*args, **kwargs):
|
||||||
raise Exception('CleanUpExc')
|
raise CustomError('CleanUpExc')
|
||||||
|
|
||||||
class Module(object):
|
class Module(object):
|
||||||
unittest.addModuleCleanup(module_cleanup_good, 1, 2, 3,
|
unittest.addModuleCleanup(module_cleanup_good, 1, 2, 3,
|
||||||
@ -630,7 +643,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
[(module_cleanup_good, (1, 2, 3),
|
[(module_cleanup_good, (1, 2, 3),
|
||||||
dict(four='hello', five='goodbye')),
|
dict(four='hello', five='goodbye')),
|
||||||
(module_cleanup_bad, (), {})])
|
(module_cleanup_bad, (), {})])
|
||||||
with self.assertRaises(Exception) as e:
|
with self.assertRaises(CustomError) as e:
|
||||||
unittest.case.doModuleCleanups()
|
unittest.case.doModuleCleanups()
|
||||||
self.assertEqual(str(e.exception), 'CleanUpExc')
|
self.assertEqual(str(e.exception), 'CleanUpExc')
|
||||||
self.assertEqual(unittest.case._module_cleanups, [])
|
self.assertEqual(unittest.case._module_cleanups, [])
|
||||||
@ -659,7 +672,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
ordering.append('setUpModule')
|
ordering.append('setUpModule')
|
||||||
unittest.addModuleCleanup(cleanup, ordering)
|
unittest.addModuleCleanup(cleanup, ordering)
|
||||||
if blowUp:
|
if blowUp:
|
||||||
raise Exception('setUpModule Exc')
|
raise CustomError('setUpModule Exc')
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def tearDownModule():
|
def tearDownModule():
|
||||||
ordering.append('tearDownModule')
|
ordering.append('tearDownModule')
|
||||||
@ -679,7 +692,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(ordering, ['setUpModule', 'cleanup_good'])
|
self.assertEqual(ordering, ['setUpModule', 'cleanup_good'])
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: setUpModule Exc')
|
f'{CustomErrorRepr}: setUpModule Exc')
|
||||||
|
|
||||||
ordering = []
|
ordering = []
|
||||||
blowUp = False
|
blowUp = False
|
||||||
@ -699,7 +712,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
ordering.append('setUpModule')
|
ordering.append('setUpModule')
|
||||||
unittest.addModuleCleanup(cleanup, ordering)
|
unittest.addModuleCleanup(cleanup, ordering)
|
||||||
if blowUp:
|
if blowUp:
|
||||||
raise Exception()
|
raise CustomError()
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def tearDownModule():
|
def tearDownModule():
|
||||||
ordering.append('tearDownModule')
|
ordering.append('tearDownModule')
|
||||||
@ -710,7 +723,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
ordering.append('setUpModule2')
|
ordering.append('setUpModule2')
|
||||||
unittest.addModuleCleanup(cleanup, ordering)
|
unittest.addModuleCleanup(cleanup, ordering)
|
||||||
if blowUp2:
|
if blowUp2:
|
||||||
raise Exception()
|
raise CustomError()
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def tearDownModule():
|
def tearDownModule():
|
||||||
ordering.append('tearDownModule2')
|
ordering.append('tearDownModule2')
|
||||||
@ -799,7 +812,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def tearDownModule():
|
def tearDownModule():
|
||||||
ordering.append('tearDownModule')
|
ordering.append('tearDownModule')
|
||||||
raise Exception('CleanUpExc')
|
raise CustomError('CleanUpExc')
|
||||||
|
|
||||||
class TestableTest(unittest.TestCase):
|
class TestableTest(unittest.TestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -815,7 +828,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
sys.modules['Module'] = Module
|
sys.modules['Module'] = Module
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
||||||
'tearDownClass', 'tearDownModule',
|
'tearDownClass', 'tearDownModule',
|
||||||
'cleanup_good'])
|
'cleanup_good'])
|
||||||
@ -855,7 +868,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
ordering = []
|
ordering = []
|
||||||
blowUp = True
|
blowUp = True
|
||||||
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
||||||
with self.assertRaises(Exception) as cm:
|
with self.assertRaises(CustomError) as cm:
|
||||||
suite.debug()
|
suite.debug()
|
||||||
self.assertEqual(str(cm.exception), 'CleanUpExc')
|
self.assertEqual(str(cm.exception), 'CleanUpExc')
|
||||||
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
||||||
@ -873,7 +886,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def tearDownModule():
|
def tearDownModule():
|
||||||
ordering.append('tearDownModule')
|
ordering.append('tearDownModule')
|
||||||
raise Exception('TearDownModuleExc')
|
raise CustomError('TearDownModuleExc')
|
||||||
|
|
||||||
class TestableTest(unittest.TestCase):
|
class TestableTest(unittest.TestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -888,7 +901,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
TestableTest.__module__ = 'Module'
|
TestableTest.__module__ = 'Module'
|
||||||
sys.modules['Module'] = Module
|
sys.modules['Module'] = Module
|
||||||
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
||||||
with self.assertRaises(Exception) as cm:
|
with self.assertRaises(CustomError) as cm:
|
||||||
suite.debug()
|
suite.debug()
|
||||||
self.assertEqual(str(cm.exception), 'TearDownModuleExc')
|
self.assertEqual(str(cm.exception), 'TearDownModuleExc')
|
||||||
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
||||||
@ -899,7 +912,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
ordering = []
|
ordering = []
|
||||||
blowUp = True
|
blowUp = True
|
||||||
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
|
||||||
with self.assertRaises(Exception) as cm:
|
with self.assertRaises(CustomError) as cm:
|
||||||
suite.debug()
|
suite.debug()
|
||||||
self.assertEqual(str(cm.exception), 'TearDownModuleExc')
|
self.assertEqual(str(cm.exception), 'TearDownModuleExc')
|
||||||
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
|
||||||
@ -978,7 +991,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
|
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpModule', 'setUpClass', 'test', 'tearDownClass',
|
['setUpModule', 'setUpClass', 'test', 'tearDownClass',
|
||||||
'cleanup_exc', 'tearDownModule', 'cleanup_good'])
|
'cleanup_exc', 'tearDownModule', 'cleanup_good'])
|
||||||
@ -1008,7 +1021,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
|
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpModule', 'setUp', 'test', 'tearDown',
|
['setUpModule', 'setUp', 'test', 'tearDown',
|
||||||
'cleanup_exc', 'tearDownModule', 'cleanup_good'])
|
'cleanup_exc', 'tearDownModule', 'cleanup_good'])
|
||||||
@ -1024,7 +1037,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
ordering.append('setUpModule')
|
ordering.append('setUpModule')
|
||||||
unittest.addModuleCleanup(cleanup, ordering, blowUp=True)
|
unittest.addModuleCleanup(cleanup, ordering, blowUp=True)
|
||||||
if module_blow_up:
|
if module_blow_up:
|
||||||
raise Exception('ModuleExc')
|
raise CustomError('ModuleExc')
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def tearDownModule():
|
def tearDownModule():
|
||||||
ordering.append('tearDownModule')
|
ordering.append('tearDownModule')
|
||||||
@ -1034,11 +1047,11 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
ordering.append('setUpClass')
|
ordering.append('setUpClass')
|
||||||
if class_blow_up:
|
if class_blow_up:
|
||||||
raise Exception('ClassExc')
|
raise CustomError('ClassExc')
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
ordering.append('setUp')
|
ordering.append('setUp')
|
||||||
if method_blow_up:
|
if method_blow_up:
|
||||||
raise Exception('MethodExc')
|
raise CustomError('MethodExc')
|
||||||
def testNothing(self):
|
def testNothing(self):
|
||||||
ordering.append('test')
|
ordering.append('test')
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -1050,7 +1063,7 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
|
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering,
|
self.assertEqual(ordering,
|
||||||
['setUpModule', 'setUpClass', 'setUp', 'test',
|
['setUpModule', 'setUpClass', 'setUp', 'test',
|
||||||
'tearDownClass', 'tearDownModule',
|
'tearDownClass', 'tearDownModule',
|
||||||
@ -1062,9 +1075,9 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
method_blow_up = False
|
method_blow_up = False
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: ModuleExc')
|
f'{CustomErrorRepr}: ModuleExc')
|
||||||
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering, ['setUpModule', 'cleanup_exc'])
|
self.assertEqual(ordering, ['setUpModule', 'cleanup_exc'])
|
||||||
|
|
||||||
ordering = []
|
ordering = []
|
||||||
@ -1073,9 +1086,9 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
method_blow_up = False
|
method_blow_up = False
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: ClassExc')
|
f'{CustomErrorRepr}: ClassExc')
|
||||||
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering, ['setUpModule', 'setUpClass',
|
self.assertEqual(ordering, ['setUpModule', 'setUpClass',
|
||||||
'tearDownModule', 'cleanup_exc'])
|
'tearDownModule', 'cleanup_exc'])
|
||||||
|
|
||||||
@ -1085,9 +1098,9 @@ class TestModuleCleanUp(unittest.TestCase):
|
|||||||
method_blow_up = True
|
method_blow_up = True
|
||||||
result = runTests(TestableTest)
|
result = runTests(TestableTest)
|
||||||
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
self.assertEqual(result.errors[0][1].splitlines()[-1],
|
||||||
'Exception: MethodExc')
|
f'{CustomErrorRepr}: MethodExc')
|
||||||
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
self.assertEqual(result.errors[1][1].splitlines()[-1],
|
||||||
'Exception: CleanUpExc')
|
f'{CustomErrorRepr}: CleanUpExc')
|
||||||
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'setUp',
|
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'setUp',
|
||||||
'tearDownClass', 'tearDownModule',
|
'tearDownClass', 'tearDownModule',
|
||||||
'cleanup_exc'])
|
'cleanup_exc'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user