summaryrefslogtreecommitdiffstats
path: root/Lib/test/mapping_tests.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2006-08-21 23:36:26 (GMT)
committerGuido van Rossum <guido@python.org>2006-08-21 23:36:26 (GMT)
commit389381564cfa936c8e50bc51dc53b55cba857652 (patch)
tree7259a38e0d6c06e5519276336ed26a593166de1d /Lib/test/mapping_tests.py
parent5431ee4a499e173c5638297de30a965ed2206c66 (diff)
downloadcpython-389381564cfa936c8e50bc51dc53b55cba857652.zip
cpython-389381564cfa936c8e50bc51dc53b55cba857652.tar.gz
cpython-389381564cfa936c8e50bc51dc53b55cba857652.tar.bz2
Change the way __hash__ is inherited; when __eq__ or __cmp__ is overridden
but __hash__ is not, set __hash__ explicitly to None (and tp_hash to NULL). All unit tests pass now!
Diffstat (limited to 'Lib/test/mapping_tests.py')
-rw-r--r--Lib/test/mapping_tests.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/test/mapping_tests.py b/Lib/test/mapping_tests.py
index 1c570b6..b917540 100644
--- a/Lib/test/mapping_tests.py
+++ b/Lib/test/mapping_tests.py
@@ -545,6 +545,8 @@ class TestHashMappingProtocol(TestMappingProtocol):
class BadEq(object):
def __eq__(self, other):
raise Exc()
+ def __hash__(self):
+ return 24
d = self._empty_mapping()
d[BadEq()] = 42
@@ -630,6 +632,8 @@ class TestHashMappingProtocol(TestMappingProtocol):
class BadCmp(object):
def __eq__(self, other):
raise Exc()
+ def __hash__(self):
+ return 42
d1 = self._full_mapping({BadCmp(): 1})
d2 = self._full_mapping({1: 1})