aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/list_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/list_tests.py')
-rw-r--r--Lib/test/list_tests.py88
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]