summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-11-20 23:15:52 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-11-20 23:15:52 (GMT)
commit9d24ff027fe93e702d95d95dd520096d4c5a9fc2 (patch)
treef8bfa79c552858445f7bb8284c6b41b8dfe5e3ef
parent304da2113892eb1a96c7976b44891bb3396c8adc (diff)
downloadcpython-9d24ff027fe93e702d95d95dd520096d4c5a9fc2.zip
cpython-9d24ff027fe93e702d95d95dd520096d4c5a9fc2.tar.gz
cpython-9d24ff027fe93e702d95d95dd520096d4c5a9fc2.tar.bz2
Follow-up of r67300: correct a failure in socket.makefile().
SocketIO objects now always have 'name' and 'mode' attributes.
-rw-r--r--Lib/socket.py13
-rw-r--r--Lib/test/test_socket.py8
2 files changed, 16 insertions, 5 deletions
diff --git a/Lib/socket.py b/Lib/socket.py
index fcbc545..5578b13 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -149,8 +149,6 @@ class socket(_socket.socket):
if buffering == 0:
if not binary:
raise ValueError("unbuffered streams must be binary")
- raw.name = self.fileno()
- raw.mode = mode
return raw
if reading and writing:
buffer = io.BufferedRWPair(raw, raw, buffering)
@@ -160,11 +158,8 @@ class socket(_socket.socket):
assert writing
buffer = io.BufferedWriter(raw, buffering)
if binary:
- buffer.name = self.fileno()
- buffer.mode = mode
return buffer
text = io.TextIOWrapper(buffer, encoding, newline)
- text.name = self.fileno()
text.mode = mode
return text
@@ -230,6 +225,14 @@ class SocketIO(io.RawIOBase):
def fileno(self):
return self._sock.fileno()
+ @property
+ def name(self):
+ return self._sock.fileno()
+
+ @property
+ def mode(self):
+ return self._mode
+
def close(self):
if self.closed:
return
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 9d753b7..b2323fe 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -848,6 +848,14 @@ class FileObjectClassTestCase(SocketConnectedTest):
def _testClosedAttr(self):
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):
"""Repeat the tests from FileObjectClassTestCase with bufsize==0.