]> granicus.if.org Git - python/commitdiff
Issue #10819: SocketIO.name property returns -1 when its closed, instead of
authorVictor Stinner <victor.stinner@haypocalc.com>
Tue, 4 Jan 2011 11:00:45 +0000 (11:00 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Tue, 4 Jan 2011 11:00:45 +0000 (11:00 +0000)
raising a ValueError, to fix repr().

Lib/socket.py
Lib/test/test_socket.py
Misc/NEWS

index 2dc97369d336986e027b20ca0c0b48b63ea04301..d0da7409bb059f7181bfe5f2298c5e7a08fdda92 100644 (file)
@@ -307,7 +307,10 @@ class SocketIO(io.RawIOBase):
 
     @property
     def name(self):
-        return self.fileno()
+        if not self.closed:
+            return self.fileno()
+        else:
+            return -1
 
     @property
     def mode(self):
index 4c8c7d666ad980ce18abaef3541cb796491c8149..8f96fe48a31d57cdfe9803a2b88d79fd58dcb9fe 100644 (file)
@@ -738,6 +738,12 @@ class GeneralModuleTests(unittest.TestCase):
             f = None
             support.gc_collect()
 
+    def test_name_closed_socketio(self):
+        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
+            fp = sock.makefile("rb")
+            fp.close()
+            self.assertEqual(repr(fp), "<_io.BufferedReader name=-1>")
+
 
 @unittest.skipUnless(thread, 'Threading required for this test.')
 class BasicTCPTest(SocketConnectedTest):
index 1b77950249b9196dd8a0cecf408f329ef4d46bbb..bebe16b9b525ef4e8bbb81339a1545deeadaf2d5 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #10819: SocketIO.name property returns -1 when its closed, instead of
+  raising a ValueError, to fix repr().
+
 - Issue #8650: zlib.compress() and zlib.decompress() raise an OverflowError if
   the input buffer length doesn't fit into an unsigned int (length bigger than
   2^32-1 bytes).