Author: Vasily Kuznetsov <kvas...@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}) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit