From: Victor Stinner Date: Sat, 11 Jul 2026 21:55:02 +0000 (+0200) Subject: gh-152132: Close stderr_copy in test_api.test_run (#153591) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0023d5b23df09f18425fea9b9c54a37ba050d5cf;p=thirdparty%2FPython%2Fcpython.git gh-152132: Close stderr_copy in test_api.test_run (#153591) Previously, the test was leaking a file descriptor. --- diff --git a/Lib/test/test_capi/test_run.py b/Lib/test/test_capi/test_run.py index 14f9833f63a4..7796c589b557 100644 --- a/Lib/test/test_capi/test_run.py +++ b/Lib/test/test_capi/test_run.py @@ -310,13 +310,15 @@ class CAPITest(unittest.TestCase): # supported". In this case, run the test without redirecting # stderr to a temporary file. self._check_run_interactive(run, encode_filename, use_loop) - else: - with tempfile.TemporaryFile() as tmp: - try: - os.dup2(tmp.fileno(), STDERR_FD) - self._check_run_interactive(run, encode_filename, use_loop) - finally: - os.dup2(stderr_copy, STDERR_FD) + return + + with tempfile.TemporaryFile() as tmp: + try: + os.dup2(tmp.fileno(), STDERR_FD) + self._check_run_interactive(run, encode_filename, use_loop) + finally: + os.dup2(stderr_copy, STDERR_FD) + os.close(stderr_copy) def test_run_interactiveone(self): # Test PyRun_InteractiveOne()