Manuel Jacob avatar Manuel Jacob committed 78f184f

Use unicode when formatting array's repr.

Comments (0)

Files changed (2)

pypy/module/array/interp_array.py

             return space.wrap("array('%s')" % self.typecode)
         elif self.typecode == "u":
             r = space.repr(array_tounicode__Array(space, self))
-            s = "array('%s', %s)" % (self.typecode, space.str_w(r))
+            s = u"array('%s', %s)" % (self.typecode, space.unicode_w(r))
             return space.wrap(s)
         else:
             r = space.repr(array_tolist__Array(space, self))

pypy/module/array/test/test_array.py

         assert a == b
         assert self.array('u', bytearray(a.tobytes())) == a
 
+    def test_repr(self):
+        s = '\x00="\'a\\b\x80\xff\u0000\u0001\u1234'
+        a = self.array('u', s)
+        assert repr(a) == "array('u', {!r})".format(s)
+        assert eval(repr(a), {'array': self.array}) == a
+
 
 class DontTestCPythonsOwnArray(BaseArrayTests):
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.