[pypy-svn] r64092 - in pypy/trunk/pypy: interpreter module/__builtin__/test

iko at codespeak.net iko at codespeak.net
Wed Apr 15 13:06:48 CEST 2009


Author: iko
Date: Wed Apr 15 13:06:47 2009
New Revision: 64092

Modified:
   pypy/trunk/pypy/interpreter/baseobjspace.py
   pypy/trunk/pypy/interpreter/buffer.py
   pypy/trunk/pypy/module/__builtin__/test/test_buffer.py
Log:
improve buffer repr to approch cpython info, and pass cpython test



Modified: pypy/trunk/pypy/interpreter/baseobjspace.py
==============================================================================
--- pypy/trunk/pypy/interpreter/baseobjspace.py	(original)
+++ pypy/trunk/pypy/interpreter/baseobjspace.py	Wed Apr 15 13:06:47 2009
@@ -78,7 +78,7 @@
                 return default
             raise
 
-    def getrepr(self, space, info, moreinfo=''):
+    def getaddrstring(self, space):
         # XXX slowish
         w_id = space.id(self)
         w_4 = space.wrap(4)
@@ -95,7 +95,11 @@
             if i == 0:
                 break
             w_id = space.rshift(w_id, w_4)
-        return space.wrap("<%s at 0x%s%s>" % (info, ''.join(addrstring),
+        return ''.join(addrstring)
+
+    def getrepr(self, space, info, moreinfo=''):
+        addrstring = self.getaddrstring(space)
+        return space.wrap("<%s at 0x%s%s>" % (info, addrstring,
                                               moreinfo))
 
     def getslotvalue(self, index):

Modified: pypy/trunk/pypy/interpreter/buffer.py
==============================================================================
--- pypy/trunk/pypy/interpreter/buffer.py	(original)
+++ pypy/trunk/pypy/interpreter/buffer.py	Wed Apr 15 13:06:47 2009
@@ -132,7 +132,10 @@
             info = 'read-write buffer'
         else:
             info = 'read-only buffer'
-        return self.getrepr(space, info)
+        addrstring = self.getaddrstring(space)
+        
+        return space.wrap("<%s for 0x%s, size %d>" %
+                          (info, addrstring, self.getlength()))
     descr_repr.unwrap_spec = ['self', ObjSpace]
 
 

Modified: pypy/trunk/pypy/module/__builtin__/test/test_buffer.py
==============================================================================
--- pypy/trunk/pypy/module/__builtin__/test/test_buffer.py	(original)
+++ pypy/trunk/pypy/module/__builtin__/test/test_buffer.py	Wed Apr 15 13:06:47 2009
@@ -36,6 +36,10 @@
     def test_str(self):
         assert str(buffer('hello')) == 'hello'
 
+    def test_repr(self):
+        # from 2.5.2 lib tests
+        assert repr(buffer('hello')).startswith('<read-only buffer for 0x')
+
     def test_add(self):
         assert buffer('abc') + 'def' == 'abcdef'
         import array



More information about the Pypy-commit mailing list