Author: Manuel Jacob
Branch: refactor-str-types
Changeset: r65776:21cef1d9c01c
Date: 2013-07-29 13:43 +0200
http://bitbucket.org/pypy/pypy/changeset/21cef1d9c01c/
Log: Test and fix to make bytearray.partition() return a new object.
diff --git a/pypy/objspace/std/stringmethods.py
b/pypy/objspace/std/stringmethods.py
--- a/pypy/objspace/std/stringmethods.py
+++ b/pypy/objspace/std/stringmethods.py
@@ -484,6 +484,9 @@
space.wrap("empty separator"))
pos = value.find(sub)
if pos == -1:
+ from pypy.objspace.std.bytearrayobject import W_BytearrayObject
+ if isinstance(self, W_BytearrayObject):
+ self = self._new(value)
return space.newtuple([self, self._empty(), self._empty()])
else:
from pypy.objspace.std.bytearrayobject import W_BytearrayObject
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
@@ -462,3 +462,7 @@
for i in range(count):
b[i:i+1] = 'y'
assert str(b) == 'y' * count
+
+ def test_partition_return_copy(self):
+ b = bytearray(b'foo')
+ assert b.partition(b'x')[0] is not b
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit