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 @property
def name(self): def name(self):
return self.fileno() if not self.closed:
return self.fileno()
else:
return -1
@property @property
def mode(self): def mode(self):

View File

@ -738,6 +738,12 @@ class GeneralModuleTests(unittest.TestCase):
f = None f = None
support.gc_collect() 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.') @unittest.skipUnless(thread, 'Threading required for this test.')
class BasicTCPTest(SocketConnectedTest): class BasicTCPTest(SocketConnectedTest):

View File

@ -30,6 +30,9 @@ Core and Builtins
Library 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 - 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 the input buffer length doesn't fit into an unsigned int (length bigger than
2^32-1 bytes). 2^32-1 bytes).