diff options
author | Raymond Hettinger <python@rcn.com> | 2005-09-24 21:23:05 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2005-09-24 21:23:05 (GMT) |
commit | 6b27cda64386195cd07dfb686e9486f1c4bc3159 (patch) | |
tree | 277a5c96e9683c63b573b508f8c4bd2d1374aed8 /Lib | |
parent | 9ceebd544516908e67c0f0d92c7a5f484e12beeb (diff) | |
download | cpython-6b27cda64386195cd07dfb686e9486f1c4bc3159.zip cpython-6b27cda64386195cd07dfb686e9486f1c4bc3159.tar.gz cpython-6b27cda64386195cd07dfb686e9486f1c4bc3159.tar.bz2 |
Convert iterator __len__() methods to a private API.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_enumerate.py | 1 | ||||
-rw-r--r-- | Lib/test/test_iterlen.py | 12 | ||||
-rw-r--r-- | Lib/test/test_itertools.py | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py index b6a18ee..e0a272e 100644 --- a/Lib/test/test_enumerate.py +++ b/Lib/test/test_enumerate.py @@ -144,6 +144,7 @@ class TestReversed(unittest.TestCase): def test_len(self): # This is an implementation detail, not an interface requirement + from test.test_iterlen import len for s in ('hello', tuple('hello'), list('hello'), xrange(5)): self.assertEqual(len(reversed(s)), len(s)) r = reversed(s) diff --git a/Lib/test/test_iterlen.py b/Lib/test/test_iterlen.py index b51263d..1770de2 100644 --- a/Lib/test/test_iterlen.py +++ b/Lib/test/test_iterlen.py @@ -43,12 +43,22 @@ enumerate(iter('abc')). import unittest from test import test_support -from itertools import repeat, count +from itertools import repeat from collections import deque from UserList import UserList +from __builtin__ import len as _len n = 10 +def len(obj): + try: + return _len(obj) + except TypeError: + try: + return obj._length_cue() + except AttributeError: + raise TypeError + class TestInvariantWithoutMutations(unittest.TestCase): def test_invariant(self): diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index 5db128c..635d156 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -670,6 +670,7 @@ class TestVariousIteratorArgs(unittest.TestCase): class LengthTransparency(unittest.TestCase): def test_repeat(self): + from test.test_iterlen import len self.assertEqual(len(repeat(None, 50)), 50) self.assertRaises(TypeError, len, repeat(None)) |