From: Victor Stinner Date: Mon, 4 Jun 2018 22:36:42 +0000 (+0200) Subject: bpo-18174: Fix file descriptor leaks in tests (GH-7408) X-Git-Tag: v2.7.16rc1~269 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=270581905cab2747ae8f7ee945301d6a29509cc7;p=thirdparty%2FPython%2Fcpython.git bpo-18174: Fix file descriptor leaks in tests (GH-7408) * test_tempfile.test_no_leak_fd() mocks os.close() but it doesn't call the original os.close() method and so leaks an open file descriptor. Fix the test by calling the original os.close() function. * test_posix.test_fdopen_directory(): close the directory file descriptor when the test completes. --- diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index bce4e21e992b..c4283b604b96 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -199,6 +199,7 @@ class PosixTester(unittest.TestCase): def test_fdopen_directory(self): try: fd = os.open('.', os.O_RDONLY) + self.addCleanup(os.close, fd) except OSError as e: self.assertEqual(e.errno, errno.EACCES) self.skipTest("system cannot open directories") diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index 5c111a29ca60..2efb8362fe1b 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -821,6 +821,7 @@ class test_NamedTemporaryFile(TC): old_fdopen = os.fdopen closed = [] def close(fd): + old_close(fd) closed.append(fd) def fdopen(*args): raise ValueError()