summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2000-09-19 20:31:24 (GMT)
committerTim Peters <tim.peters@gmail.com>2000-09-19 20:31:24 (GMT)
commitf5fa0fc640425fd98b1f0178d73e786e20d833cf (patch)
treef5ca69fac8773ac832324c9b97bf2a2ff02946a2
parent7b393fc0379d901da657e8fb870171cca71f94f4 (diff)
downloadcpython-f5fa0fc640425fd98b1f0178d73e786e20d833cf.zip
cpython-f5fa0fc640425fd98b1f0178d73e786e20d833cf.tar.gz
cpython-f5fa0fc640425fd98b1f0178d73e786e20d833cf.tar.bz2
test_userlist.py:
Added new test for new __contains__ method. Extensive editing to get rid of asserts.
-rw-r--r--Lib/test/test_userlist.py91
1 files changed, 52 insertions, 39 deletions
diff --git a/Lib/test/test_userlist.py b/Lib/test/test_userlist.py
index 6c627c0..e8d9cb0 100644
--- a/Lib/test/test_userlist.py
+++ b/Lib/test/test_userlist.py
@@ -1,6 +1,13 @@
# Check every path through every method of UserList
from UserList import UserList
+from test_support import TestFailed
+
+# Use check instead of assert so -O doesn't render the
+# test useless.
+def check(predicate, msg):
+ if not predicate:
+ raise TestFailed(msg + " failed")
l0 = []
l1 = [0]
@@ -31,9 +38,9 @@ vv = UserList("this is also a sequence")
# Test __repr__
-assert str(u0) == str(l0)
-assert repr(u1) == repr(l1)
-assert `u2` == `l2`
+check(str(u0) == str(l0), "str(u0) == str(l0)")
+check(repr(u1) == repr(l1), "repr(u1) == repr(l1)")
+check(`u2` == `l2`, "`u2` == `l2`")
# Test __cmp__ and __len__
@@ -46,12 +53,13 @@ def mycmp(a, b):
all = [l0, l1, l2, u, u0, u1, u2, uu, uu0, uu1, uu2]
for a in all:
for b in all:
- assert mycmp(a, b) == mycmp(len(a), len(b))
+ check(mycmp(a, b) == mycmp(len(a), len(b)),
+ "mycmp(a, b) == mycmp(len(a), len(b))")
# Test __getitem__
for i in range(len(u2)):
- assert u2[i] == i
+ check(u2[i] == i, "u2[i] == i")
# Test __setitem__
@@ -62,7 +70,7 @@ try:
except IndexError:
pass
else:
- assert 0, "uu2[2] shouldn't be assignable"
+ raise TestFailed("uu2[2] shouldn't be assignable")
# Test __delitem__
@@ -73,115 +81,120 @@ try:
except IndexError:
pass
else:
- assert 0, "uu2[0] shouldn't be deletable"
+ raise TestFailed("uu2[0] shouldn't be deletable")
# Test __getslice__
for i in range(-3, 4):
- assert u2[:i] == l2[:i]
- assert u2[i:] == l2[i:]
+ check(u2[:i] == l2[:i], "u2[:i] == l2[:i]")
+ check(u2[i:] == l2[i:], "u2[i:] == l2[i:]")
for j in range(-3, 4):
- assert u2[i:j] == l2[i:j]
+ check(u2[i:j] == l2[i:j], "u2[i:j] == l2[i:j]")
# Test __setslice__
for i in range(-3, 4):
u2[:i] = l2[:i]
- assert u2 == l2
+ check(u2 == l2, "u2 == l2")
u2[i:] = l2[i:]
- assert u2 == l2
+ check(u2 == l2, "u2 == l2")
for j in range(-3, 4):
u2[i:j] = l2[i:j]
- assert u2 == l2
+ check(u2 == l2, "u2 == l2")
uu2 = u2[:]
uu2[:0] = [-2, -1]
-assert uu2 == [-2, -1, 0, 1]
+check(uu2 == [-2, -1, 0, 1], "uu2 == [-2, -1, 0, 1]")
uu2[0:] = []
-assert uu2 == []
+check(uu2 == [], "uu2 == []")
+
+# Test __contains__
+for i in u2:
+ check(i in u2, "i in u2")
+for i in min(u2)-1, max(u2)+1:
+ check(i not in u2, "i not in u2")
# Test __delslice__
uu2 = u2[:]
del uu2[1:2]
del uu2[0:1]
-assert uu2 == []
+check(uu2 == [], "uu2 == []")
uu2 = u2[:]
del uu2[1:]
del uu2[:1]
-assert uu2 == []
+check(uu2 == [], "uu2 == []")
# Test __add__, __radd__, __mul__ and __rmul__
-assert u1 + [] == [] + u1 == u1
-assert u1 + [1] == u2
-assert [-1] + u1 == [-1, 0]
-assert u2 == u2*1 == 1*u2
-assert u2+u2 == u2*2 == 2*u2
-assert u2+u2+u2 == u2*3 == 3*u2
+check(u1 + [] == [] + u1 == u1, "u1 + [] == [] + u1 == u1")
+check(u1 + [1] == u2, "u1 + [1] == u2")
+check([-1] + u1 == [-1, 0], "[-1] + u1 == [-1, 0]")
+check(u2 == u2*1 == 1*u2, "u2 == u2*1 == 1*u2")
+check(u2+u2 == u2*2 == 2*u2, "u2+u2 == u2*2 == 2*u2")
+check(u2+u2+u2 == u2*3 == 3*u2, "u2+u2+u2 == u2*3 == 3*u2")
# Test append
u = u1[:]
u.append(1)
-assert u == u2
+check(u == u2, "u == u2")
# Test insert
u = u2[:]
u.insert(0, -1)
-assert u == [-1, 0, 1]
+check(u == [-1, 0, 1], "u == [-1, 0, 1]")
# Test pop
u = [-1] + u2
u.pop()
-assert u == [-1, 0]
+check(u == [-1, 0], "u == [-1, 0]")
u.pop(0)
-assert u == [0]
+check(u == [0], "u == [0]")
# Test remove
u = u2[:]
u.remove(1)
-assert u == u1
+check(u == u1, "u == u1")
# Test count
u = u2*3
-assert u.count(0) == 3
-assert u.count(1) == 3
-assert u.count(2) == 0
+check(u.count(0) == 3, "u.count(0) == 3")
+check(u.count(1) == 3, "u.count(1) == 3")
+check(u.count(2) == 0, "u.count(2) == 0")
# Test index
-assert u2.index(0) == 0
-assert u2.index(1) == 1
+check(u2.index(0) == 0, "u2.index(0) == 0")
+check(u2.index(1) == 1, "u2.index(1) == 1")
try:
u2.index(2)
except ValueError:
pass
else:
- assert 0, "expected ValueError"
+ raise TestFailed("expected ValueError")
# Test reverse
u = u2[:]
u.reverse()
-assert u == [1, 0]
+check(u == [1, 0], "u == [1, 0]")
u.reverse()
-assert u == u2
+check(u == u2, "u == u2")
# Test sort
u = UserList([1, 0])
u.sort()
-assert u == u2
+check(u == u2, "u == u2")
# Test extend
u = u1[:]
u.extend(u2)
-assert u == u1 + u2
-
+check(u == u1 + u2, "u == u1 + u2")