Author: Yannick Jadoul <[email protected]>
Branch: py3.7-bpo-29839
Changeset: r97819:81794cb4ab7f
Date: 2019-10-18 19:30 +0200
http://bitbucket.org/pypy/pypy/changeset/81794cb4ab7f/
Log: Added (well, copied) apptest for len
diff --git a/pypy/module/__builtin__/test/test_builtin.py
b/pypy/module/__builtin__/test/test_builtin.py
--- a/pypy/module/__builtin__/test/test_builtin.py
+++ b/pypy/module/__builtin__/test/test_builtin.py
@@ -751,6 +751,41 @@
__dict__ = property(fget=getDict)
assert vars(C_get_vars()) == {'a':2}
+ def test_len(self):
+ import sys
+ assert len('123') == 3
+ assert len(()) == 0
+ assert len((1, 2, 3, 4)) == 4
+ assert len([1, 2, 3, 4]) == 4
+ assert len({}) == 0
+ assert len({'a':1, 'b': 2}) == 2
+ class BadSeq:
+ def __len__(self):
+ raise ValueError
+ raises(ValueError, len, BadSeq())
+ class InvalidLen:
+ def __len__(self):
+ return None
+ raises(TypeError, len, InvalidLen())
+ class FloatLen:
+ def __len__(self):
+ return 4.5
+ raises(TypeError, len, FloatLen())
+ class NegativeLen:
+ def __len__(self):
+ return -10
+ raises(ValueError, len, NegativeLen())
+ class HugeLen:
+ def __len__(self):
+ return sys.maxsize + 1
+ raises(OverflowError, len, HugeLen())
+ class HugeNegativeLen:
+ def __len__(self):
+ return -sys.maxsize-10
+ raises(ValueError, len, HugeNegativeLen())
+ class NoLenMethod(object): pass
+ raises(TypeError, len, NoLenMethod())
+
class AppTestGetattr:
spaceconfig = {}
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit