From: Victor Stinner Date: Wed, 20 Jun 2018 09:29:33 +0000 (+0200) Subject: bpo-33746: Fix test_unittest.testRegisterResult() in verbose mode (GH-7799) X-Git-Tag: v3.8.0a1~1522 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fd8fbce495c32b0cbc13f71a8e9d4eec6f48c844;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Lib/unittest/test/test_break.py b/Lib/unittest/test/test_break.py index aa2c69eea01a..eebd2b610ce1 100644 --- a/Lib/unittest/test/test_break.py +++ b/Lib/unittest/test/test_break.py @@ -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 index 000000000000..e79399f03be5 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2018-06-19-17-55-46.bpo-33746.Sz7avn.rst @@ -0,0 +1 @@ +Fix test_unittest when run in verbose mode.