diff options
Diffstat (limited to 'Lib/test/list_tests.py')
-rw-r--r-- | Lib/test/list_tests.py | 88 |
1 files changed, 49 insertions, 39 deletions
diff --git a/Lib/test/list_tests.py b/Lib/test/list_tests.py index b8d6d6bda67..be054eadf6e 100644 --- a/Lib/test/list_tests.py +++ b/Lib/test/list_tests.py @@ -4,8 +4,10 @@ Tests common to list and UserList.UserList import sys import os +from functools import cmp_to_key + +from test import support, seq_tests -from test import test_support, seq_tests class CommonTest(seq_tests.CommonTest): @@ -46,23 +48,23 @@ class CommonTest(seq_tests.CommonTest): self.assertEqual(repr(a2), "[0, 1, 2, [...], 3]") l0 = [] - for i in xrange(sys.getrecursionlimit() + 100): + for i in range(sys.getrecursionlimit() + 100): l0 = [l0] self.assertRaises(RuntimeError, repr, l0) def test_print(self): - d = self.type2test(xrange(200)) + d = self.type2test(range(200)) d.append(d) - d.extend(xrange(200,400)) + d.extend(range(200,400)) d.append(d) d.append(400) try: - with open(test_support.TESTFN, "wb") as fo: - print >> fo, d, - with open(test_support.TESTFN, "rb") as fo: + with open(support.TESTFN, "w") as fo: + fo.write(str(d)) + with open(support.TESTFN, "r") as fo: self.assertEqual(fo.read(), repr(d)) finally: - os.remove(test_support.TESTFN) + os.remove(support.TESTFN) def test_set_subscript(self): a = self.type2test(range(20)) @@ -79,7 +81,7 @@ class CommonTest(seq_tests.CommonTest): a = self.type2test(range(20)) r = reversed(a) self.assertEqual(list(r), self.type2test(range(19, -1, -1))) - self.assertRaises(StopIteration, r.next) + self.assertRaises(StopIteration, next, r) self.assertEqual(list(reversed(self.type2test())), self.type2test()) # Bug 3689: make sure list-reversed-iterator doesn't have __len__ @@ -103,16 +105,16 @@ class CommonTest(seq_tests.CommonTest): self.assertRaises(TypeError, a.__setitem__) a = self.type2test([0,1,2,3,4]) - a[0L] = 1 - a[1L] = 2 - a[2L] = 3 + a[0] = 1 + a[1] = 2 + a[2] = 3 self.assertEqual(a, self.type2test([1,2,3,3,4])) a[0] = 5 a[1] = 6 a[2] = 7 self.assertEqual(a, self.type2test([5,6,7,3,4])) - a[-2L] = 88 - a[-1L] = 99 + a[-2] = 88 + a[-1] = 99 self.assertEqual(a, self.type2test([5,6,7,88,99])) a[-2] = 8 a[-1] = 9 @@ -182,10 +184,8 @@ class CommonTest(seq_tests.CommonTest): a[:] = tuple(range(10)) self.assertEqual(a, self.type2test(range(10))) - self.assertRaises(TypeError, a.__setslice__, 0, 1, 5) self.assertRaises(TypeError, a.__setitem__, slice(0, 1, 5)) - self.assertRaises(TypeError, a.__setslice__) self.assertRaises(TypeError, a.__setitem__) def test_delslice(self): @@ -195,8 +195,8 @@ class CommonTest(seq_tests.CommonTest): self.assertEqual(a, self.type2test([])) a = self.type2test([0, 1]) - del a[1L:2L] - del a[0L:1L] + del a[1:2] + del a[0:1] self.assertEqual(a, self.type2test([])) a = self.type2test([0, 1]) @@ -204,7 +204,7 @@ class CommonTest(seq_tests.CommonTest): self.assertEqual(a, self.type2test([1])) a = self.type2test([0, 1]) - del a[-2L:-1L] + del a[-2:-1] self.assertEqual(a, self.type2test([1])) a = self.type2test([0, 1]) @@ -213,8 +213,8 @@ class CommonTest(seq_tests.CommonTest): self.assertEqual(a, self.type2test([])) a = self.type2test([0, 1]) - del a[1L:] - del a[:1L] + del a[1:] + del a[:1] self.assertEqual(a, self.type2test([])) a = self.type2test([0, 1]) @@ -222,7 +222,7 @@ class CommonTest(seq_tests.CommonTest): self.assertEqual(a, self.type2test([0])) a = self.type2test([0, 1]) - del a[-1L:] + del a[-1:] self.assertEqual(a, self.type2test([0])) a = self.type2test([0, 1]) @@ -389,8 +389,8 @@ class CommonTest(seq_tests.CommonTest): self.assertEqual(a.index(0, -3), 3) self.assertEqual(a.index(0, 3, 4), 3) self.assertEqual(a.index(0, -3, -2), 3) - self.assertEqual(a.index(0, -4*sys.maxint, 4*sys.maxint), 2) - self.assertRaises(ValueError, a.index, 0, 4*sys.maxint,-4*sys.maxint) + self.assertEqual(a.index(0, -4*sys.maxsize, 4*sys.maxsize), 2) + self.assertRaises(ValueError, a.index, 0, 4*sys.maxsize,-4*sys.maxsize) self.assertRaises(ValueError, a.index, 2, 0, -10) a.remove(0) self.assertRaises(ValueError, a.index, 2, 0, 4) @@ -404,7 +404,7 @@ class CommonTest(seq_tests.CommonTest): del self.victim[:] return False a = self.type2test() - a[:] = [EvilCmp(a) for _ in xrange(100)] + a[:] = [EvilCmp(a) for _ in range(100)] # This used to seg fault before patch #1005778 self.assertRaises(ValueError, a.index, None) @@ -419,11 +419,6 @@ class CommonTest(seq_tests.CommonTest): self.assertRaises(TypeError, u.reverse, 42) def test_sort(self): - with test_support.check_py3k_warnings( - ("the cmp argument is not supported", DeprecationWarning)): - self._test_sort() - - def _test_sort(self): u = self.type2test([1, 0]) u.sort() self.assertEqual(u, [0, 1]) @@ -435,24 +430,39 @@ class CommonTest(seq_tests.CommonTest): self.assertRaises(TypeError, u.sort, 42, 42) def revcmp(a, b): - return cmp(b, a) - u.sort(revcmp) + if a == b: + return 0 + elif a < b: + return 1 + else: # a > b + return -1 + u.sort(key=cmp_to_key(revcmp)) self.assertEqual(u, self.type2test([2,1,0,-1,-2])) # The following dumps core in unpatched Python 1.5: def myComparison(x,y): - return cmp(x%3, y%7) + xmod, ymod = x%3, y%7 + if xmod == ymod: + return 0 + elif xmod < ymod: + return -1 + else: # xmod > ymod + return 1 z = self.type2test(range(12)) - z.sort(myComparison) + z.sort(key=cmp_to_key(myComparison)) self.assertRaises(TypeError, z.sort, 2) def selfmodifyingComparison(x,y): z.append(1) - return cmp(x, y) - self.assertRaises(ValueError, z.sort, selfmodifyingComparison) - - self.assertRaises(TypeError, z.sort, lambda x, y: 's') + if x == y: + return 0 + elif x < y: + return -1 + else: # x > y + return 1 + self.assertRaises(ValueError, z.sort, + key=cmp_to_key(selfmodifyingComparison)) self.assertRaises(TypeError, z.sort, 42, 42, 42, 42) @@ -462,7 +472,7 @@ class CommonTest(seq_tests.CommonTest): self.assertEqual(u, list("ham")) def test_iadd(self): - super(CommonTest, self).test_iadd() + super().test_iadd() u = self.type2test([0, 1]) u2 = u u += [2, 3] |