Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3eccc48

Browse files
committed
Test suite for UserDict
1 parent 1697b9c commit 3eccc48

2 files changed

Lines changed: 102 additions & 0 deletions

File tree

Lib/test/output/test_userdict

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
test_userdict

Lib/test/test_userdict.py

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Check every path through every method of UserDict
2+
3+
from UserDict import UserDict
4+
5+
d0 = {}
6+
d1 = {"one": 1}
7+
d2 = {"one": 1, "two": 2}
8+
9+
# Test constructors
10+
11+
u = UserDict()
12+
u0 = UserDict(d0)
13+
u1 = UserDict(d1)
14+
u2 = UserDict(d2)
15+
16+
uu = UserDict(u)
17+
uu0 = UserDict(u0)
18+
uu1 = UserDict(u1)
19+
uu2 = UserDict(u2)
20+
21+
# Test __repr__
22+
23+
assert str(u0) == str(d0)
24+
assert repr(u1) == repr(d1)
25+
assert `u2` == `d2`
26+
27+
# Test __cmp__ and __len__
28+
29+
all = [d0, d1, d2, u, u0, u1, u2, uu, uu0, uu1, uu2]
30+
for a in all:
31+
for b in all:
32+
assert cmp(a, b) == cmp(len(a), len(b))
33+
34+
# Test __getitem__
35+
36+
assert u2["one"] == 1
37+
try:
38+
u1["two"]
39+
except KeyError:
40+
pass
41+
else:
42+
assert 0, "u1['two'] shouldn't exist"
43+
44+
# Test __setitem__
45+
46+
u3 = UserDict(u2)
47+
u3["two"] = 2
48+
u3["three"] = 3
49+
50+
# Test __delitem__
51+
52+
del u3["three"]
53+
try:
54+
del u3["three"]
55+
except KeyError:
56+
pass
57+
else:
58+
assert 0, "u3['three'] shouldn't exist"
59+
60+
# Test clear
61+
62+
u3.clear()
63+
assert u3 == {}
64+
65+
# Test copy()
66+
67+
u2a = u2.copy()
68+
assert u2a == u2
69+
70+
class MyUserDict(UserDict):
71+
def display(self): print self
72+
73+
m2 = MyUserDict(u2)
74+
m2a = m2.copy()
75+
assert m2a == m2
76+
77+
# Test keys, items, values
78+
79+
assert u2.keys() == d2.keys()
80+
assert u2.items() == d2.items()
81+
assert u2.values() == d2.values()
82+
83+
# Test has_key
84+
85+
for i in u2.keys():
86+
assert u2.has_key(i) == 1
87+
assert u1.has_key(i) == d1.has_key(i)
88+
assert u0.has_key(i) == d0.has_key(i)
89+
90+
# Test update
91+
92+
t = UserDict()
93+
t.update(u2)
94+
assert t == u2
95+
96+
# Test get
97+
98+
for i in u2.keys():
99+
assert u2.get(i) == u2[i]
100+
assert u1.get(i) == d1.get(i)
101+
assert u0.get(i) == d0.get(i)

0 commit comments

Comments
 (0)