__hash__ may now return long int; the final hash

value is obtained by invoking hash on the long int.
Fixes #1536021.
This commit is contained in:
Martin v. Löwis 2006-08-09 07:57:39 +00:00
parent 209307eb3b
commit ab2f8f7bd5
5 changed files with 24 additions and 6 deletions

View file

@ -640,6 +640,15 @@ class BuiltinTest(unittest.TestCase):
def f(): pass
self.assertRaises(TypeError, hash, [])
self.assertRaises(TypeError, hash, {})
# Bug 1536021: Allow hash to return long objects
class X:
def __hash__(self):
return 2**100
self.assertEquals(type(hash(X())), int)
class Y(object):
def __hash__(self):
return 2**100
self.assertEquals(type(hash(Y())), int)
def test_hex(self):
self.assertEqual(hex(16), '0x10')