Index: Lib/socket.py =================================================================== --- Lib/socket.py (revision 67304) +++ Lib/socket.py (working copy) @@ -149,8 +149,6 @@ 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 @@ 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 @@ 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: Lib/test/test_socket.py =================================================================== --- Lib/test/test_socket.py (revision 67304) +++ Lib/test/test_socket.py (working copy) @@ -848,6 +848,14 @@ 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.