Author: Philip Jenvey <[email protected]>
Branch: 
Changeset: r64658:a6a2200b5fb0
Date: 2013-05-28 18:14 -0700
http://bitbucket.org/pypy/pypy/changeset/a6a2200b5fb0/

Log:    fix the broken, unused descr_repr

diff --git a/pypy/module/_multiprocessing/interp_connection.py 
b/pypy/module/_multiprocessing/interp_connection.py
--- a/pypy/module/_multiprocessing/interp_connection.py
+++ b/pypy/module/_multiprocessing/interp_connection.py
@@ -7,7 +7,8 @@
 from pypy.interpreter.baseobjspace import W_Root
 from pypy.interpreter.error import (
     OperationError, operationerrfmt, wrap_oserror)
-from pypy.interpreter.gateway import WrappedDefault, interp2app, unwrap_spec
+from pypy.interpreter.gateway import (
+    WrappedDefault, interp2app, interpindirect2app, unwrap_spec)
 from pypy.interpreter.typedef import GetSetProperty, TypeDef
 
 READABLE, WRITABLE = range(1, 3)
@@ -62,6 +63,14 @@
     def writable_get(self, space):
         return space.newbool(bool(self.flags & WRITABLE))
 
+    def _repr(self, space, handle):
+        conn_type = ["read-only", "write-only", "read-write"][self.flags - 1]
+        return space.wrap("<%s %s, handle %d>" % (
+                conn_type, space.type(self).getname(space), handle))
+
+    def descr_repr(self, space):
+        raise NotImplementedError
+
     def _check_readable(self, space):
         if not self.flags & READABLE:
             raise OperationError(space.w_IOError,
@@ -178,6 +187,7 @@
 
 W_BaseConnection.typedef = TypeDef(
     'BaseConnection',
+    __repr__ = interpindirect2app(W_BaseConnection.descr_repr),
     closed = GetSetProperty(W_BaseConnection.closed_get),
     readable = GetSetProperty(W_BaseConnection.readable_get),
     writable = GetSetProperty(W_BaseConnection.writable_get),
@@ -240,6 +250,9 @@
         W_FileConnection.__init__(self, space, fd, flags)
         return space.wrap(self)
 
+    def descr_repr(self, space):
+        return self._repr(space, self.fd)
+
     def fileno(self, space):
         return space.wrap(self.fd)
 
@@ -361,10 +374,7 @@
         return space.wrap(self)
 
     def descr_repr(self, space):
-        conn_type = ["read-only", "write-only", "read-write"][self.flags]
-
-        return space.wrap("<%s %s, handle %zd>" % (
-            conn_type, space.type(self).getname(space), self.do_fileno()))
+        return self._repr(space, self.handle)
 
     def is_valid(self):
         return self.handle != self.INVALID_HANDLE_VALUE
diff --git a/pypy/module/_multiprocessing/test/test_connection.py 
b/pypy/module/_multiprocessing/test/test_connection.py
--- a/pypy/module/_multiprocessing/test/test_connection.py
+++ b/pypy/module/_multiprocessing/test/test_connection.py
@@ -173,3 +173,11 @@
         assert data1 == '\x00\x00\x00\x03abc'
         data2 = sock.recv(8)
         assert data2 == '\x00\x00\x00\x04defg'
+
+    def test_repr(self):
+        import _multiprocessing
+        c = _multiprocessing.Connection(1)
+        assert repr(c) == '<read-write Connection, handle 1>'
+        if hasattr(_multiprocessing, 'PipeConnection'):
+            c = _multiprocessing.PipeConnection(1)
+            assert repr(c) == '<read-write Connection, handle 1>'
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to