Author: Vasily Kuznetsov <[email protected]>
Branch: py3.3
Changeset: r72537:c4be82e0fa27
Date: 2014-07-26 18:08 +0200
http://bitbucket.org/pypy/pypy/changeset/c4be82e0fa27/
Log: Refuse to sum bytes or bytearrays like cpython3 sum.
diff --git a/pypy/module/__builtin__/app_functional.py
b/pypy/module/__builtin__/app_functional.py
--- a/pypy/module/__builtin__/app_functional.py
+++ b/pypy/module/__builtin__/app_functional.py
@@ -37,6 +37,10 @@
empty, returns start."""
if isinstance(start, str):
raise TypeError("sum() can't sum strings [use ''.join(seq) instead]")
+ if isinstance(start, bytes):
+ raise TypeError("sum() can't sum bytes [use b''.join(seq) instead]")
+ if isinstance(start, bytearray):
+ raise TypeError("sum() can't sum bytearray [use b''.join(seq)
instead]")
last = start
for x in sequence:
# Very intentionally *not* +=, that would have different semantics if
diff --git a/pypy/module/__builtin__/test/test_sum.py
b/pypy/module/__builtin__/test/test_sum.py
new file mode 100644
--- /dev/null
+++ b/pypy/module/__builtin__/test/test_sum.py
@@ -0,0 +1,9 @@
+class AppTestSum:
+
+ def test_sum(self):
+ raises(TypeError, sum, [b'a', b'c'], b'')
+ raises(TypeError, sum, [bytearray(b'a'), bytearray(b'b')],
+ bytearray(b''))
+ raises(TypeError, sum, [[1], [2], [3]])
+ raises(TypeError, sum, [{2:3}])
+ raises(TypeError, sum, [{2:3}]*2, {2:3})
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit