[pypy-commit] pypy py3.3: Refuse to sum bytes or bytearrays like cpython3 sum.
kvas
noreply at buildbot.pypy.org
Sat Jul 26 18:21:08 CEST 2014
Author: Vasily Kuznetsov <kvas.it at gmail.com>
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})
More information about the pypy-commit
mailing list