summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/functools.py2
-rw-r--r--Lib/test/test_functools.py7
2 files changed, 9 insertions, 0 deletions
diff --git a/Lib/functools.py b/Lib/functools.py
index ad1cccc..539dc90 100644
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -93,4 +93,6 @@ def cmp_to_key(mycmp):
return mycmp(self.obj, other.obj) >= 0
def __ne__(self, other):
return mycmp(self.obj, other.obj) != 0
+ def __hash__(self):
+ raise TypeError('hash not implemented')
return K
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index 1629f7c..05e19b1 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -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):