[pypy-commit] pypy default: test/fix quotes in bytearray repr

bdkearns noreply at buildbot.pypy.org
Thu May 8 23:08:30 CEST 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: 
Changeset: r71419:eefd0674de1d
Date: 2014-05-08 17:05 -0400
http://bitbucket.org/pypy/pypy/changeset/eefd0674de1d/

Log:	test/fix quotes in bytearray repr

diff --git a/pypy/objspace/std/bytearrayobject.py b/pypy/objspace/std/bytearrayobject.py
--- a/pypy/objspace/std/bytearrayobject.py
+++ b/pypy/objspace/std/bytearrayobject.py
@@ -221,7 +221,15 @@
         # Good default if there are no replacements.
         buf = StringBuilder(len("bytearray(b'')") + len(s))
 
-        buf.append("bytearray(b'")
+        buf.append("bytearray(b")
+        quote = "'"
+        for c in s:
+            if c == '"':
+                quote = "'"
+                break
+            elif c == "'":
+                quote = '"'
+        buf.append(quote)
 
         for i in range(len(s)):
             c = s[i]
@@ -243,7 +251,8 @@
             else:
                 buf.append(c)
 
-        buf.append("')")
+        buf.append(quote)
+        buf.append(")")
 
         return space.wrap(buf.build())
 
diff --git a/pypy/objspace/std/test/test_bytearrayobject.py b/pypy/objspace/std/test/test_bytearrayobject.py
--- a/pypy/objspace/std/test/test_bytearrayobject.py
+++ b/pypy/objspace/std/test/test_bytearrayobject.py
@@ -1,5 +1,6 @@
 from pypy import conftest
 
+
 class AppTestBytesArray:
     def setup_class(cls):
         cls.w_runappdirect = cls.space.wrap(conftest.option.runappdirect)
@@ -49,7 +50,10 @@
     def test_repr(self):
         assert repr(bytearray()) == "bytearray(b'')"
         assert repr(bytearray('test')) == "bytearray(b'test')"
-        assert repr(bytearray("d'oh")) == r"bytearray(b'd\'oh')"
+        assert repr(bytearray("d'oh")) == r'bytearray(b"d\'oh")'
+        assert repr(bytearray('d"oh')) == 'bytearray(b\'d"oh\')'
+        assert repr(bytearray('d"\'oh')) == 'bytearray(b\'d"\\\'oh\')'
+        assert repr(bytearray('d\'"oh')) == 'bytearray(b\'d\\\'"oh\')'
 
     def test_str(self):
         assert str(bytearray()) == ""


More information about the pypy-commit mailing list