Skip to content

Commit 0bd3333

Browse files
Use ExceptionGroup even for 1 exception.
1 parent c06caac commit 0bd3333

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

Lib/test/test_unittest/test_runner.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -646,9 +646,11 @@ class Module(object):
646646
[(module_cleanup_good, (1, 2, 3),
647647
dict(four='hello', five='goodbye')),
648648
(module_cleanup_bad, (), {})])
649-
with self.assertRaises(CustomError) as e:
649+
with self.assertRaises(Exception) as e:
650650
unittest.case.doModuleCleanups()
651-
self.assertEqual(str(e.exception), 'CleanUpExc')
651+
e = e.exception
652+
self.assertEqual(str(e), 'module cleanup failed (1 sub-exception)')
653+
self.assertEqual(str(e.exceptions[0]), 'CleanUpExc')
652654
self.assertEqual(unittest.case._module_cleanups, [])
653655

654656
def test_doModuleCleanup_with_multiple_errors_in_addModuleCleanup(self):
@@ -658,7 +660,7 @@ def module_cleanup_bad1():
658660
def module_cleanup_bad2():
659661
raise ValueError('CleanUpExc2')
660662

661-
class Module(object):
663+
class Module:
662664
unittest.addModuleCleanup(module_cleanup_bad1)
663665
unittest.addModuleCleanup(module_cleanup_bad2)
664666
with self.assertRaises(ExceptionGroup) as e:
@@ -673,7 +675,7 @@ def module_cleanup_bad():
673675
raise ExceptionGroup('CleanUpExc', [TypeError('CleanUpExc1'),
674676
ValueError('CleanUpExc2')])
675677

676-
class Module(object):
678+
class Module:
677679
unittest.addModuleCleanup(module_cleanup_bad)
678680
with self.assertRaises(ExceptionGroup) as e:
679681
unittest.case.doModuleCleanups()
@@ -904,9 +906,11 @@ def tearDownClass(cls):
904906
ordering = []
905907
blowUp = True
906908
suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestableTest)
907-
with self.assertRaises(CustomError) as cm:
909+
with self.assertRaises(Exception) as cm:
908910
suite.debug()
909-
self.assertEqual(str(cm.exception), 'CleanUpExc')
911+
e = cm.exception
912+
self.assertEqual(str(e), 'module cleanup failed (1 sub-exception)')
913+
self.assertEqual(str(e.exceptions[0]), 'CleanUpExc')
910914
self.assertEqual(ordering, ['setUpModule', 'setUpClass', 'test',
911915
'tearDownClass', 'tearDownModule', 'cleanup_exc'])
912916
self.assertEqual(unittest.case._module_cleanups, [])

Lib/unittest/case.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,6 @@ def doModuleCleanups():
149149
except Exception as exc:
150150
exceptions.append(exc)
151151
if exceptions:
152-
if len(exceptions) == 1 and not isinstance(exceptions[0], ExceptionGroup):
153-
raise exceptions[0]
154152
raise ExceptionGroup('module cleanup failed', exceptions)
155153

156154

0 commit comments

Comments
 (0)