Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | # Check every path through every method of UserList |
2 | ||
3 | from UserList import UserList | |
4 | import unittest | |
5 | from test import test_support, list_tests | |
6 | ||
7 | class UserListTest(list_tests.CommonTest): | |
8 | type2test = UserList | |
9 | ||
10 | def test_getslice(self): | |
11 | super(UserListTest, self).test_getslice() | |
12 | l = [0, 1, 2, 3, 4] | |
13 | u = self.type2test(l) | |
14 | for i in range(-3, 6): | |
15 | self.assertEqual(u[:i], l[:i]) | |
16 | self.assertEqual(u[i:], l[i:]) | |
17 | for j in xrange(-3, 6): | |
18 | self.assertEqual(u[i:j], l[i:j]) | |
19 | ||
20 | def test_add_specials(self): | |
21 | u = UserList("spam") | |
22 | u2 = u + "eggs" | |
23 | self.assertEqual(u2, list("spameggs")) | |
24 | ||
25 | def test_radd_specials(self): | |
26 | u = UserList("eggs") | |
27 | u2 = "spam" + u | |
28 | self.assertEqual(u2, list("spameggs")) | |
29 | u2 = u.__radd__(UserList("spam")) | |
30 | self.assertEqual(u2, list("spameggs")) | |
31 | ||
32 | def test_iadd(self): | |
33 | super(UserListTest, self).test_iadd() | |
34 | u = [0, 1] | |
35 | u += UserList([0, 1]) | |
36 | self.assertEqual(u, [0, 1, 0, 1]) | |
37 | ||
38 | def test_mixedcmp(self): | |
39 | u = self.type2test([0, 1]) | |
40 | self.assertEqual(u, [0, 1]) | |
41 | self.assertNotEqual(u, [0]) | |
42 | self.assertNotEqual(u, [0, 2]) | |
43 | ||
44 | def test_mixedadd(self): | |
45 | u = self.type2test([0, 1]) | |
46 | self.assertEqual(u + [], u) | |
47 | self.assertEqual(u + [2], [0, 1, 2]) | |
48 | ||
49 | def test_getitemoverwriteiter(self): | |
50 | # Verify that __getitem__ overrides *are* recognized by __iter__ | |
51 | class T(self.type2test): | |
52 | def __getitem__(self, key): | |
53 | return str(key) + '!!!' | |
54 | self.assertEqual(iter(T((1,2))).next(), "0!!!") | |
55 | ||
56 | def test_main(): | |
57 | test_support.run_unittest(UserListTest) | |
58 | ||
59 | if __name__ == "__main__": | |
60 | test_main() |