(self)
| 3978 | self.assertEqual(b.getfoo(), 24) |
| 3979 | |
| 3980 | def test_slices(self): |
| 3981 | # Testing cases with slices and overridden __getitem__ ... |
| 3982 | |
| 3983 | # Strings |
| 3984 | self.assertEqual("hello"[:4], "hell") |
| 3985 | self.assertEqual("hello"[slice(4)], "hell") |
| 3986 | self.assertEqual(str.__getitem__("hello", slice(4)), "hell") |
| 3987 | class S(str): |
| 3988 | def __getitem__(self, x): |
| 3989 | return str.__getitem__(self, x) |
| 3990 | self.assertEqual(S("hello")[:4], "hell") |
| 3991 | self.assertEqual(S("hello")[slice(4)], "hell") |
| 3992 | self.assertEqual(S("hello").__getitem__(slice(4)), "hell") |
| 3993 | # Tuples |
| 3994 | self.assertEqual((1,2,3)[:2], (1,2)) |
| 3995 | self.assertEqual((1,2,3)[slice(2)], (1,2)) |
| 3996 | self.assertEqual(tuple.__getitem__((1,2,3), slice(2)), (1,2)) |
| 3997 | class T(tuple): |
| 3998 | def __getitem__(self, x): |
| 3999 | return tuple.__getitem__(self, x) |
| 4000 | self.assertEqual(T((1,2,3))[:2], (1,2)) |
| 4001 | self.assertEqual(T((1,2,3))[slice(2)], (1,2)) |
| 4002 | self.assertEqual(T((1,2,3)).__getitem__(slice(2)), (1,2)) |
| 4003 | # Lists |
| 4004 | self.assertEqual([1,2,3][:2], [1,2]) |
| 4005 | self.assertEqual([1,2,3][slice(2)], [1,2]) |
| 4006 | self.assertEqual(list.__getitem__([1,2,3], slice(2)), [1,2]) |
| 4007 | class L(list): |
| 4008 | def __getitem__(self, x): |
| 4009 | return list.__getitem__(self, x) |
| 4010 | self.assertEqual(L([1,2,3])[:2], [1,2]) |
| 4011 | self.assertEqual(L([1,2,3])[slice(2)], [1,2]) |
| 4012 | self.assertEqual(L([1,2,3]).__getitem__(slice(2)), [1,2]) |
| 4013 | # Now do lists and __setitem__ |
| 4014 | a = L([1,2,3]) |
| 4015 | a[slice(1, 3)] = [3,2] |
| 4016 | self.assertEqual(a, [1,3,2]) |
| 4017 | a[slice(0, 2, 1)] = [3,1] |
| 4018 | self.assertEqual(a, [3,1,2]) |
| 4019 | a.__setitem__(slice(1, 3), [2,1]) |
| 4020 | self.assertEqual(a, [3,2,1]) |
| 4021 | a.__setitem__(slice(0, 2, 1), [2,3]) |
| 4022 | self.assertEqual(a, [2,3,1]) |
| 4023 | |
| 4024 | def test_subtype_resurrection(self): |
| 4025 | # Testing resurrection of new-style instance... |
nothing calls this directly
no test coverage detected