Home | History | Annotate | Download | only in test
      1 # Check every path through every method of UserList
      2 
      3 from collections import UserList
      4 from test import list_tests
      5 import unittest
      6 
      7 class UserListTest(list_tests.CommonTest):
      8     type2test = UserList
      9 
     10     def test_getslice(self):
     11         super().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 range(-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().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(next(iter(T((1,2)))), "0!!!")
     55 
     56     def test_userlist_copy(self):
     57         u = self.type2test([6, 8, 1, 9, 1])
     58         v = u.copy()
     59         self.assertEqual(u, v)
     60         self.assertEqual(type(u), type(v))
     61 
     62 if __name__ == "__main__":
     63     unittest.main()
     64