From: Victor Stinner Date: Wed, 5 Jan 2011 03:54:28 +0000 (+0000) Subject: test_threading: use Popen.communicate() instead of .wait() X-Git-Tag: v3.2rc1~181 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c932b65428b4995bc53609ed361fddf382882ee5;p=python test_threading: use Popen.communicate() instead of .wait() Popen.communicate() avoids deadlocks and close the pipes when done. This commit fixes a ResourceWarning(unclosed pipe). --- diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index f3d5a4c89d..46d2f4723d 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -512,9 +512,9 @@ class ThreadJoinOnShutdown(BaseTestCase): def assertScriptHasOutput(self, script, expected_output): p = subprocess.Popen([sys.executable, "-c", script], stdout=subprocess.PIPE) - rc = p.wait() - data = p.stdout.read().decode().replace('\r', '') - self.assertEqual(rc, 0, "Unexpected error") + stdout, stderr = p.communicate() + data = stdout.decode().replace('\r', '') + self.assertEqual(p.returncode, 0, "Unexpected error") self.assertEqual(data, expected_output) @unittest.skipUnless(hasattr(os, 'fork'), "needs os.fork()")