From 9db2ae7263d8047c29a13ad476534a4cbcdbd8f6 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 30 Mar 2016 01:15:28 +0200 Subject: Fix ResourceWarning in test_unittest when interrupted --- Lib/unittest/test/test_runner.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Lib/unittest/test/test_runner.py b/Lib/unittest/test/test_runner.py index 9cbc260..ddc498c 100644 --- a/Lib/unittest/test/test_runner.py +++ b/Lib/unittest/test/test_runner.py @@ -290,7 +290,8 @@ class Test_TextTestRunner(unittest.TestCase): # no args -> all the warnings are printed, unittest warnings only once p = subprocess.Popen([sys.executable, '_test_warnings.py'], **opts) - out, err = get_parse_out_err(p) + with p: + out, err = get_parse_out_err(p) self.assertIn(b'OK', err) # check that the total number of warnings in the output is correct self.assertEqual(len(out), 12) @@ -311,7 +312,8 @@ class Test_TextTestRunner(unittest.TestCase): # in all these cases no warnings are printed for args in args_list: p = subprocess.Popen(args, **opts) - out, err = get_parse_out_err(p) + with p: + out, err = get_parse_out_err(p) self.assertIn(b'OK', err) self.assertEqual(len(out), 0) @@ -320,7 +322,8 @@ class Test_TextTestRunner(unittest.TestCase): # unittest warnings only once p = subprocess.Popen([sys.executable, '_test_warnings.py', 'always'], **opts) - out, err = get_parse_out_err(p) + with p: + out, err = get_parse_out_err(p) self.assertIn(b'OK', err) self.assertEqual(len(out), 14) for msg in [b'dw', b'iw', b'uw', b'rw']: -- cgit v0.12