/Lib/test/test_userlist.py

http://unladen-swallow.googlecode.com/ · Python · 59 lines · 46 code · 11 blank · 2 comment · 3 complexity · f731408dfd9290e2417cfda844840561 MD5 · raw file

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