Issue #10819: SocketIO.name property returns -1 when its closed, instead of

raising a ValueError, to fix repr().
This commit is contained in:
Victor Stinner 2011-01-04 11:00:45 +00:00
parent 8848c7a37f
commit c3a51ecb85
3 changed files with 13 additions and 1 deletions

View 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):

View 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):

View File

@ -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).