[Python-checkins] cpython: test_pty: fix ResourceWarning warnings

victor.stinner python-checkins at python.org
Tue Mar 6 02:05:21 CET 2012


http://hg.python.org/cpython/rev/815f7c25740b
changeset:   75446:815f7c25740b
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Tue Mar 06 02:04:58 2012 +0100
summary:
  test_pty: fix ResourceWarning warnings

files:
  Lib/test/test_pty.py |  19 ++++++++++++++-----
  1 files changed, 14 insertions(+), 5 deletions(-)


diff --git a/Lib/test/test_pty.py b/Lib/test/test_pty.py
--- a/Lib/test/test_pty.py
+++ b/Lib/test/test_pty.py
@@ -205,6 +205,7 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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()

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list