[pypy-commit] pypy stdlib-2.7.9: test/fix _socket.socket repr

bdkearns noreply at buildbot.pypy.org
Mon Dec 15 21:07:52 CET 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: stdlib-2.7.9
Changeset: r74949:ef0308d0f344
Date: 2014-12-15 15:06 -0500
http://bitbucket.org/pypy/pypy/changeset/ef0308d0f344/

Log:	test/fix _socket.socket repr

diff --git a/pypy/module/_socket/interp_socket.py b/pypy/module/_socket/interp_socket.py
--- a/pypy/module/_socket/interp_socket.py
+++ b/pypy/module/_socket/interp_socket.py
@@ -142,6 +142,12 @@
     def get_family_w(self, space):
         return space.wrap(self.sock.family)
 
+    def descr_repr(self, space):
+        return space.wrap("<socket object, fd=%d, family=%d,"
+                          " type=%d, protocol=%d>" %
+                          (self.sock.fd, self.sock.family,
+                           self.sock.type, self.sock.proto))
+
     def accept_w(self, space):
         """accept() -> (socket object, address info)
 
@@ -661,6 +667,7 @@
  [*] not available on all platforms!""",
     __new__ = descr_socket_new,
     __weakref__ = make_weakref_descr(W_Socket),
+    __repr__ = interp2app(W_Socket.descr_repr),
     type = GetSetProperty(W_Socket.get_type_w),
     proto = GetSetProperty(W_Socket.get_proto_w),
     family = GetSetProperty(W_Socket.get_family_w),
diff --git a/pypy/module/_socket/test/test_sock_app.py b/pypy/module/_socket/test/test_sock_app.py
--- a/pypy/module/_socket/test/test_sock_app.py
+++ b/pypy/module/_socket/test/test_sock_app.py
@@ -372,6 +372,19 @@
         assert s.fileno() > -1
         assert isinstance(s.fileno(), int)
 
+    def test_socket_repr(self):
+        import _socket
+        s = _socket.socket(_socket.AF_INET, _socket.SOCK_STREAM)
+        try:
+            expected = ('<socket object, fd=%s, family=%s, type=%s, protocol=%s>'
+                        % (s.fileno(), s.family, s.type, s.proto))
+            assert repr(s) == expected
+        finally:
+            s.close()
+        expected = ('<socket object, fd=-1, family=%s, type=%s, protocol=%s>'
+                    % (s.family, s.type, s.proto))
+        assert repr(s) == expected
+
     def test_socket_close(self):
         import _socket, os
         s = _socket.socket(_socket.AF_INET, _socket.SOCK_STREAM, 0)


More information about the pypy-commit mailing list