]> granicus.if.org Git - python/commitdiff
Follow-up of r67300: correct a failure in socket.makefile().
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>
Thu, 20 Nov 2008 23:15:52 +0000 (23:15 +0000)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>
Thu, 20 Nov 2008 23:15:52 +0000 (23:15 +0000)
SocketIO objects now always have 'name' and 'mode' attributes.

Lib/socket.py
Lib/test/test_socket.py

index fcbc545d5aca22a1678c12d6b1e8d0f3675df82f..5578b13b1a3e7d9cfd4ef80c9017980264a0a81e 100644 (file)
@@ -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
index 9d753b7ea53c3596f6e1a33ab191fafce61ac6d6..b2323fe7fd2e34e76343f0b184702efef08a2ac2 100644 (file)
@@ -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.