Skip to content

Commit fd8fbce

Browse files
authored
bpo-33746: Fix test_unittest.testRegisterResult() in verbose mode (GH-7799)
Only make sure that the result is in unittest.signals._results, don't check the full content of unittest.signals._results. support._run_suite() uses TextTestRunner in verbose mode, but TextTestRunner.run() calls registerResult(result) which made the test fail with "odd object in result set". Call also removeResult() to restore unittest.signals._results to avoid test side effect.
1 parent 9bb9223 commit fd8fbce

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

Lib/unittest/test/test_break.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,13 @@ def testInstallHandler(self):
3939

4040
def testRegisterResult(self):
4141
result = unittest.TestResult()
42-
unittest.registerResult(result)
43-
44-
for ref in unittest.signals._results:
45-
if ref is result:
46-
break
47-
elif ref is not result:
48-
self.fail("odd object in result set")
49-
else:
50-
self.fail("result not found")
42+
self.assertNotIn(result, unittest.signals._results)
5143

44+
unittest.registerResult(result)
45+
try:
46+
self.assertIn(result, unittest.signals._results)
47+
finally:
48+
unittest.removeResult(result)
5249

5350
def testInterruptCaught(self):
5451
default_handler = signal.getsignal(signal.SIGINT)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix test_unittest when run in verbose mode.

0 commit comments

Comments
 (0)