summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_enumerate.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_enumerate.py')
-rw-r--r--Lib/test/test_enumerate.py33
1 files changed, 27 insertions, 6 deletions
diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py
index e0a272e..3522b4f 100644
--- a/Lib/test/test_enumerate.py
+++ b/Lib/test/test_enumerate.py
@@ -100,7 +100,8 @@ class EnumerateTestCase(unittest.TestCase):
def test_argumentcheck(self):
self.assertRaises(TypeError, self.enum) # no arguments
self.assertRaises(TypeError, self.enum, 1) # wrong type (not iterable)
- self.assertRaises(TypeError, self.enum, 'abc', 2) # too many arguments
+ self.assertRaises(TypeError, self.enum, 'abc', 'a') # wrong type
+ self.assertRaises(TypeError, self.enum, 'abc', 2, 3) # too many arguments
def test_tuple_reuse(self):
# Tests an implementation detail where tuple is reused
@@ -137,6 +138,8 @@ class TestReversed(unittest.TestCase):
for data in 'abc', range(5), tuple(enumerate('abc')), A(), xrange(1,17,5):
self.assertEqual(list(data)[::-1], list(reversed(data)))
self.assertRaises(TypeError, reversed, {})
+ # don't allow keyword arguments
+ self.assertRaises(TypeError, reversed, [], a=1)
def test_xrange_optimization(self):
x = xrange(1)
@@ -196,17 +199,35 @@ class TestReversed(unittest.TestCase):
self.assertEqual(rc, sys.getrefcount(r))
+class EnumerateStartTestCase(EnumerateTestCase):
+
+ def test_basicfunction(self):
+ e = self.enum(self.seq)
+ self.assertEqual(iter(e), e)
+ self.assertEqual(list(self.enum(self.seq)), self.res)
+
+
+class TestStart(EnumerateStartTestCase):
+
+ enum = lambda self, i: enumerate(i, start=11)
+ seq, res = 'abc', [(11, 'a'), (12, 'b'), (13, 'c')]
+
+
+class TestLongStart(EnumerateStartTestCase):
+
+ enum = lambda self, i: enumerate(i, start=sys.maxint+1)
+ seq, res = 'abc', [(sys.maxint+1,'a'), (sys.maxint+2,'b'),
+ (sys.maxint+3,'c')]
+
+
def test_main(verbose=None):
- testclasses = (EnumerateTestCase, SubclassTestCase, TestEmpty, TestBig,
- TestReversed)
- test_support.run_unittest(*testclasses)
+ test_support.run_unittest(__name__)
# verify reference counting
- import sys
if verbose and hasattr(sys, "gettotalrefcount"):
counts = [None] * 5
for i in xrange(len(counts)):
- test_support.run_unittest(*testclasses)
+ test_support.run_unittest(__name__)
counts[i] = sys.gettotalrefcount()
print counts