fix len() when __len__() returns a non number type #5137

This commit is contained in:
Benjamin Peterson 2009-02-08 21:07:20 +00:00
parent c7055a59a6
commit ee1ae7ccb7
3 changed files with 16 additions and 1 deletions

View file

@ -611,6 +611,18 @@ class BuiltinTest(unittest.TestCase):
def __len__(self):
raise ValueError
self.assertRaises(ValueError, len, BadSeq())
class InvalidLen:
def __len__(self):
return None
self.assertRaises(TypeError, len, InvalidLen())
class FloatLen:
def __len__(self):
return 4.5
self.assertRaises(TypeError, len, FloatLen())
class HugeLen:
def __len__(self):
return sys.maxsize + 1
self.assertRaises(OverflowError, len, HugeLen())
def test_map(self):
self.assertEqual(