diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/socket.py | 5 | ||||
-rw-r--r-- | Lib/test/test_socket.py | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Lib/socket.py b/Lib/socket.py index 2dc9736..d0da740 100644 --- a/Lib/socket.py +++ b/Lib/socket.py @@ -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): diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 4c8c7d6..8f96fe4 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -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): |