mirror of https://github.com/python/cpython.git
Follow-up of r67300: correct a failure in socket.makefile().
SocketIO objects now always have 'name' and 'mode' attributes.
This commit is contained in:
parent
304da21138
commit
9d24ff027f
|
@ -149,8 +149,6 @@ def makefile(self, mode="r", buffering=None, *,
|
||||||
if buffering == 0:
|
if buffering == 0:
|
||||||
if not binary:
|
if not binary:
|
||||||
raise ValueError("unbuffered streams must be binary")
|
raise ValueError("unbuffered streams must be binary")
|
||||||
raw.name = self.fileno()
|
|
||||||
raw.mode = mode
|
|
||||||
return raw
|
return raw
|
||||||
if reading and writing:
|
if reading and writing:
|
||||||
buffer = io.BufferedRWPair(raw, raw, buffering)
|
buffer = io.BufferedRWPair(raw, raw, buffering)
|
||||||
|
@ -160,11 +158,8 @@ def makefile(self, mode="r", buffering=None, *,
|
||||||
assert writing
|
assert writing
|
||||||
buffer = io.BufferedWriter(raw, buffering)
|
buffer = io.BufferedWriter(raw, buffering)
|
||||||
if binary:
|
if binary:
|
||||||
buffer.name = self.fileno()
|
|
||||||
buffer.mode = mode
|
|
||||||
return buffer
|
return buffer
|
||||||
text = io.TextIOWrapper(buffer, encoding, newline)
|
text = io.TextIOWrapper(buffer, encoding, newline)
|
||||||
text.name = self.fileno()
|
|
||||||
text.mode = mode
|
text.mode = mode
|
||||||
return text
|
return text
|
||||||
|
|
||||||
|
@ -230,6 +225,14 @@ def writable(self):
|
||||||
def fileno(self):
|
def fileno(self):
|
||||||
return self._sock.fileno()
|
return self._sock.fileno()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
return self._sock.fileno()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def mode(self):
|
||||||
|
return self._mode
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
if self.closed:
|
if self.closed:
|
||||||
return
|
return
|
||||||
|
|
|
@ -848,6 +848,14 @@ def testClosedAttr(self):
|
||||||
def _testClosedAttr(self):
|
def _testClosedAttr(self):
|
||||||
self.assert_(not self.cli_file.closed)
|
self.assert_(not self.cli_file.closed)
|
||||||
|
|
||||||
|
def testAttributes(self):
|
||||||
|
self.assertEqual(self.serv_file.mode, 'r')
|
||||||
|
self.assertEqual(self.serv_file.name, self.cli_conn.fileno())
|
||||||
|
|
||||||
|
def _testAttributes(self):
|
||||||
|
self.assertEqual(self.cli_file.mode, 'w')
|
||||||
|
self.assertEqual(self.cli_file.name, self.serv_conn.fileno())
|
||||||
|
|
||||||
class UnbufferedFileObjectClassTestCase(FileObjectClassTestCase):
|
class UnbufferedFileObjectClassTestCase(FileObjectClassTestCase):
|
||||||
|
|
||||||
"""Repeat the tests from FileObjectClassTestCase with bufsize==0.
|
"""Repeat the tests from FileObjectClassTestCase with bufsize==0.
|
||||||
|
|
Loading…
Reference in New Issue