summaryrefslogtreecommitdiff
path: root/Lib/test/test_iterlen.py
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2009-02-03 02:23:19 +0000
committerRaymond Hettinger <python@rcn.com>2009-02-03 02:23:19 +0000
commitd6fc2623c5e765df20f2072aa6575b0c5c272692 (patch)
treefed146296b4c1866efd720382e34507c672fd751 /Lib/test/test_iterlen.py
parentb516370bcbeef7391edc28fa6bfcc8da6d98beea (diff)
downloadcpython-git-d6fc2623c5e765df20f2072aa6575b0c5c272692.tar.gz
Validate that __length_hint__ returns a usable result.
Diffstat (limited to 'Lib/test/test_iterlen.py')
-rw-r--r--Lib/test/test_iterlen.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_iterlen.py b/Lib/test/test_iterlen.py
index 91873c2af4..ab5466ecf9 100644
--- a/Lib/test/test_iterlen.py
+++ b/Lib/test/test_iterlen.py
@@ -208,6 +208,11 @@ class BadLengthHint(object):
def __length_hint__(self):
raise RuntimeError('hello')
+class NoneLengthHint(object):
+ def __iter__(self): return iter(range(10))
+ def __length_hint__(self):
+ return None
+
class TestLengthHintExceptions(unittest.TestCase):
def test_issue1242657(self):
@@ -225,6 +230,11 @@ class TestLengthHintExceptions(unittest.TestCase):
self.assertRaises(RuntimeError, b.extend, BadLen())
self.assertRaises(RuntimeError, b.extend, BadLengthHint())
+ def test_invalid_hint(self):
+ # Make sure an invalid result doesn't muck-up the works
+ self.assertEqual(list(NoneLengthHint()), list(range(10)))
+
+
def test_main():
unittests = [
TestRepeat,