Skip to content

Commit 2b75742

Browse files
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. (cherry picked from commit fd8fbce) Co-authored-by: Victor Stinner <vstinner@redhat.com>
1 parent 17d4c53 commit 2b75742

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
@@ -41,16 +41,13 @@ def testInstallHandler(self):
4141

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

46+
unittest.registerResult(result)
47+
try:
48+
self.assertIn(result, unittest.signals._results)
49+
finally:
50+
unittest.removeResult(result)
5451

5552
def testInterruptCaught(self):
5653
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)