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