From b1f7f6343b2098d69ee421032b1feb4e6ebc7c73 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 6 Mar 2012 02:04:58 +0100 Subject: [PATCH] test_pty: fix ResourceWarning warnings --- Lib/test/test_pty.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_pty.py b/Lib/test/test_pty.py index 4f1251cd368..ef95268e19e 100644 --- a/Lib/test/test_pty.py +++ b/Lib/test/test_pty.py @@ -205,6 +205,7 @@ class SmallPtyTests(unittest.TestCase): self.orig_stdout_fileno = pty.STDOUT_FILENO self.orig_pty_select = pty.select self.fds = [] # A list of file descriptors to close. + self.files = [] self.select_rfds_lengths = [] self.select_rfds_results = [] @@ -212,10 +213,15 @@ class SmallPtyTests(unittest.TestCase): pty.STDIN_FILENO = self.orig_stdin_fileno pty.STDOUT_FILENO = self.orig_stdout_fileno pty.select = self.orig_pty_select + for file in self.files: + try: + file.close() + except OSError: + pass for fd in self.fds: try: os.close(fd) - except: + except OSError: pass def _pipe(self): @@ -223,6 +229,11 @@ class SmallPtyTests(unittest.TestCase): self.fds.extend(pipe_fds) return pipe_fds + def _socketpair(self): + socketpair = socket.socketpair() + self.files.extend(socketpair) + return socketpair + def _mock_select(self, rfds, wfds, xfds): # This will raise IndexError when no more expected calls exist. self.assertEqual(self.select_rfds_lengths.pop(0), len(rfds)) @@ -234,9 +245,8 @@ class SmallPtyTests(unittest.TestCase): pty.STDOUT_FILENO = mock_stdout_fd mock_stdin_fd, write_to_stdin_fd = self._pipe() pty.STDIN_FILENO = mock_stdin_fd - socketpair = socket.socketpair() + socketpair = self._socketpair() masters = [s.fileno() for s in socketpair] - self.fds.extend(masters) # Feed data. Smaller than PIPEBUF. These writes will not block. os.write(masters[1], b'from master') @@ -263,9 +273,8 @@ class SmallPtyTests(unittest.TestCase): pty.STDOUT_FILENO = mock_stdout_fd mock_stdin_fd, write_to_stdin_fd = self._pipe() pty.STDIN_FILENO = mock_stdin_fd - socketpair = socket.socketpair() + socketpair = self._socketpair() masters = [s.fileno() for s in socketpair] - self.fds.extend(masters) os.close(masters[1]) socketpair[1].close()