(self)
| 3891 | self.assertEqual(b.getfoo(), 24) |
| 3892 | |
| 3893 | def test_slices(self): |
| 3894 | # Testing cases with slices and overridden __getitem__ ... |
| 3895 | |
| 3896 | # Strings |
| 3897 | self.assertEqual("hello"[:4], "hell") |
| 3898 | self.assertEqual("hello"[slice(4)], "hell") |
| 3899 | self.assertEqual(str.__getitem__("hello", slice(4)), "hell") |
| 3900 | class S(str): |
| 3901 | def __getitem__(self, x): |
| 3902 | return str.__getitem__(self, x) |
| 3903 | self.assertEqual(S("hello")[:4], "hell") |
| 3904 | self.assertEqual(S("hello")[slice(4)], "hell") |
| 3905 | self.assertEqual(S("hello").__getitem__(slice(4)), "hell") |
| 3906 | # Tuples |
| 3907 | self.assertEqual((1,2,3)[:2], (1,2)) |
| 3908 | self.assertEqual((1,2,3)[slice(2)], (1,2)) |
| 3909 | self.assertEqual(tuple.__getitem__((1,2,3), slice(2)), (1,2)) |
| 3910 | class T(tuple): |
| 3911 | def __getitem__(self, x): |
| 3912 | return tuple.__getitem__(self, x) |
| 3913 | self.assertEqual(T((1,2,3))[:2], (1,2)) |
| 3914 | self.assertEqual(T((1,2,3))[slice(2)], (1,2)) |
| 3915 | self.assertEqual(T((1,2,3)).__getitem__(slice(2)), (1,2)) |
| 3916 | # Lists |
| 3917 | self.assertEqual([1,2,3][:2], [1,2]) |
| 3918 | self.assertEqual([1,2,3][slice(2)], [1,2]) |
| 3919 | self.assertEqual(list.__getitem__([1,2,3], slice(2)), [1,2]) |
| 3920 | class L(list): |
| 3921 | def __getitem__(self, x): |
| 3922 | return list.__getitem__(self, x) |
| 3923 | self.assertEqual(L([1,2,3])[:2], [1,2]) |
| 3924 | self.assertEqual(L([1,2,3])[slice(2)], [1,2]) |
| 3925 | self.assertEqual(L([1,2,3]).__getitem__(slice(2)), [1,2]) |
| 3926 | # Now do lists and __setitem__ |
| 3927 | a = L([1,2,3]) |
| 3928 | a[slice(1, 3)] = [3,2] |
| 3929 | self.assertEqual(a, [1,3,2]) |
| 3930 | a[slice(0, 2, 1)] = [3,1] |
| 3931 | self.assertEqual(a, [3,1,2]) |
| 3932 | a.__setitem__(slice(1, 3), [2,1]) |
| 3933 | self.assertEqual(a, [3,2,1]) |
| 3934 | a.__setitem__(slice(0, 2, 1), [2,3]) |
| 3935 | self.assertEqual(a, [2,3,1]) |
| 3936 | |
| 3937 | def test_subtype_resurrection(self): |
| 3938 | # Testing resurrection of new-style instance... |
nothing calls this directly
no test coverage detected