diff options
Diffstat (limited to 'Lib/test/test_enumerate.py')
-rw-r--r-- | Lib/test/test_enumerate.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py index 4dc9a12..095820b 100644 --- a/Lib/test/test_enumerate.py +++ b/Lib/test/test_enumerate.py @@ -103,6 +103,7 @@ class EnumerateTestCase(unittest.TestCase): self.assertRaises(TypeError, self.enum, 'abc', 'a') # wrong type self.assertRaises(TypeError, self.enum, 'abc', 2, 3) # too many arguments + @support.cpython_only def test_tuple_reuse(self): # Tests an implementation detail where tuple is reused # whenever nothing else holds a reference to it @@ -145,6 +146,7 @@ class TestReversed(unittest.TestCase): x = range(1) self.assertEqual(type(reversed(x)), type(iter(x))) + @support.cpython_only def test_len(self): # This is an implementation detail, not an interface requirement from test.test_iterlen import len @@ -198,6 +200,18 @@ class TestReversed(unittest.TestCase): self.fail("non-callable __reversed__ didn't raise!") self.assertEqual(rc, sys.getrefcount(r)) + def test_objmethods(self): + # Objects must have __len__() and __getitem__() implemented. + class NoLen(object): + def __getitem__(self): return 1 + nl = NoLen() + self.assertRaises(TypeError, reversed, nl) + + class NoGetItem(object): + def __len__(self): return 2 + ngi = NoGetItem() + self.assertRaises(TypeError, reversed, ngi) + class EnumerateStartTestCase(EnumerateTestCase): |