]> granicus.if.org Git - python/commitdiff
bpo-33746: Fix test_unittest.testRegisterResult() in verbose mode (GH-7799)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 20 Jun 2018 09:50:03 +0000 (02:50 -0700)
committerGitHub <noreply@github.com>
Wed, 20 Jun 2018 09:50:03 +0000 (02:50 -0700)
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 fd8fbce495c32b0cbc13f71a8e9d4eec6f48c844)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
Lib/unittest/test/test_break.py
Misc/NEWS.d/next/Tests/2018-06-19-17-55-46.bpo-33746.Sz7avn.rst [new file with mode: 0644]

index aa2c69eea01ac6dbdb820e6a01ee42cfa9bfb5a8..eebd2b610ce11fe44dc3ba6c637099016950aa51 100644 (file)
@@ -39,16 +39,13 @@ class TestBreak(unittest.TestCase):
 
     def testRegisterResult(self):
         result = unittest.TestResult()
-        unittest.registerResult(result)
-
-        for ref in unittest.signals._results:
-            if ref is result:
-                break
-            elif ref is not result:
-                self.fail("odd object in result set")
-        else:
-            self.fail("result not found")
+        self.assertNotIn(result, unittest.signals._results)
 
+        unittest.registerResult(result)
+        try:
+            self.assertIn(result, unittest.signals._results)
+        finally:
+            unittest.removeResult(result)
 
     def testInterruptCaught(self):
         default_handler = signal.getsignal(signal.SIGINT)
diff --git a/Misc/NEWS.d/next/Tests/2018-06-19-17-55-46.bpo-33746.Sz7avn.rst b/Misc/NEWS.d/next/Tests/2018-06-19-17-55-46.bpo-33746.Sz7avn.rst
new file mode 100644 (file)
index 0000000..e79399f
--- /dev/null
@@ -0,0 +1 @@
+Fix test_unittest when run in verbose mode.