diff options
Diffstat (limited to 'Lib/test/test_enumerate.py')
-rw-r--r-- | Lib/test/test_enumerate.py | 52 |
1 files changed, 23 insertions, 29 deletions
diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py index 6b9ff79aa1a..095820b45fb 100644 --- a/Lib/test/test_enumerate.py +++ b/Lib/test/test_enumerate.py @@ -1,7 +1,7 @@ import unittest import sys -from test import test_support +from test import support class G: 'Sequence using __getitem__' @@ -17,7 +17,7 @@ class I: self.i = 0 def __iter__(self): return self - def next(self): + def __next__(self): if self.i >= len(self.seqn): raise StopIteration v = self.seqn[self.i] self.i += 1 @@ -37,7 +37,7 @@ class X: def __init__(self, seqn): self.seqn = seqn self.i = 0 - def next(self): + def __next__(self): if self.i >= len(self.seqn): raise StopIteration v = self.seqn[self.i] self.i += 1 @@ -50,11 +50,11 @@ class E: self.i = 0 def __iter__(self): return self - def next(self): + def __next__(self): 3 // 0 class N: - 'Iterator missing next()' + 'Iterator missing __next__()' def __init__(self, seqn): self.seqn = seqn self.i = 0 @@ -76,23 +76,23 @@ class EnumerateTestCase(unittest.TestCase): def test_getitemseqn(self): self.assertEqual(list(self.enum(G(self.seq))), self.res) e = self.enum(G('')) - self.assertRaises(StopIteration, e.next) + self.assertRaises(StopIteration, next, e) def test_iteratorseqn(self): self.assertEqual(list(self.enum(I(self.seq))), self.res) e = self.enum(I('')) - self.assertRaises(StopIteration, e.next) + self.assertRaises(StopIteration, next, e) def test_iteratorgenerator(self): self.assertEqual(list(self.enum(Ig(self.seq))), self.res) e = self.enum(Ig('')) - self.assertRaises(StopIteration, e.next) + self.assertRaises(StopIteration, next, e) def test_noniterable(self): self.assertRaises(TypeError, self.enum, X(self.seq)) def test_illformediterable(self): - self.assertRaises(TypeError, list, self.enum(N(self.seq))) + self.assertRaises(TypeError, self.enum, N(self.seq)) def test_exception_propagation(self): self.assertRaises(ZeroDivisionError, list, self.enum(E(self.seq))) @@ -103,7 +103,7 @@ class EnumerateTestCase(unittest.TestCase): self.assertRaises(TypeError, self.enum, 'abc', 'a') # wrong type self.assertRaises(TypeError, self.enum, 'abc', 2, 3) # too many arguments - @test_support.cpython_only + @support.cpython_only def test_tuple_reuse(self): # Tests an implementation detail where tuple is reused # whenever nothing else holds a reference to it @@ -124,7 +124,7 @@ class TestEmpty(EnumerateTestCase): class TestBig(EnumerateTestCase): seq = range(10,20000,2) - res = zip(range(20000), seq) + res = list(zip(range(20000), seq)) class TestReversed(unittest.TestCase): @@ -136,27 +136,21 @@ class TestReversed(unittest.TestCase): raise StopIteration def __len__(self): return 5 - for data in 'abc', range(5), tuple(enumerate('abc')), A(), xrange(1,17,5): + for data in 'abc', range(5), tuple(enumerate('abc')), A(), range(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_classic_class(self): - class A: - def __reversed__(self): - return [2, 1] - self.assertEqual(list(reversed(A())), [2, 1]) - - def test_xrange_optimization(self): - x = xrange(1) + def test_range_optimization(self): + x = range(1) self.assertEqual(type(reversed(x)), type(iter(x))) - @test_support.cpython_only + @support.cpython_only 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)): + for s in ('hello', tuple('hello'), list('hello'), range(5)): self.assertEqual(len(reversed(s)), len(s)) r = reversed(s) list(r) @@ -235,21 +229,21 @@ class TestStart(EnumerateStartTestCase): 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')] + enum = lambda self, i: enumerate(i, start=sys.maxsize+1) + seq, res = 'abc', [(sys.maxsize+1,'a'), (sys.maxsize+2,'b'), + (sys.maxsize+3,'c')] def test_main(verbose=None): - test_support.run_unittest(__name__) + support.run_unittest(__name__) # verify reference counting if verbose and hasattr(sys, "gettotalrefcount"): counts = [None] * 5 - for i in xrange(len(counts)): - test_support.run_unittest(__name__) + for i in range(len(counts)): + support.run_unittest(__name__) counts[i] = sys.gettotalrefcount() - print counts + print(counts) if __name__ == "__main__": test_main(verbose=True) |