bpo-41514: Fix buggy IDLE test (GH-21808)

test_run method test_fatal_error failed when run twice, as with
python -m test -m test_fatal_error test_idle test_idle
because func.called was not reinitialized to 0.
This bug caused a failure on a refleak buildbot.
(cherry picked from commit 416f0b71ba)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
This commit is contained in:
Miss Islington (bot) 2020-08-10 07:05:02 -07:00 committed by GitHub
parent d2bea2636d
commit 9c253f4bc9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -326,11 +326,11 @@ class RecursionLimitTest(unittest.TestCase):
class HandleErrorTest(unittest.TestCase):
# Method of MyRPCServer
func = Func()
@mock.patch('idlelib.run.thread.interrupt_main', new=func)
def test_error(self):
def test_fatal_error(self):
eq = self.assertEqual
with captured_output('__stderr__') as err:
with captured_output('__stderr__') as err,\
mock.patch('idlelib.run.thread.interrupt_main',
new_callable=Func) as func:
try:
raise EOFError
except EOFError:
@ -349,7 +349,7 @@ class HandleErrorTest(unittest.TestCase):
self.assertIn('abc', msg)
self.assertIn('123', msg)
self.assertIn('IndexError', msg)
eq(self.func.called, 2)
eq(func.called, 2)
if __name__ == '__main__':
unittest.main(verbosity=2)