diff options
Diffstat (limited to 'Lib/test/test_enumerate.py')
| -rw-r--r-- | Lib/test/test_enumerate.py | 33 |
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 |
