Classes that override __eq__ also need to define __hash__.

This commit is contained in:
Raymond Hettinger 2010-04-05 18:53:43 +00:00
parent 5e0c2748fb
commit e1d665a90e
2 changed files with 9 additions and 0 deletions

View file

@ -345,6 +345,13 @@ class TestCmpToKey(unittest.TestCase):
self.assertEqual(sorted(range(5), key=functools.cmp_to_key(mycmp)),
[4, 3, 2, 1, 0])
def test_hash(self):
def mycmp(x, y):
return y - x
key = functools.cmp_to_key(mycmp)
k = key(10)
self.assertRaises(TypeError, hash(k))
class TestTotalOrdering(unittest.TestCase):
def test_total_ordering_lt(self):