Commit 28393828 authored by Victor Stinner's avatar Victor Stinner

Issue #14205: Fix test_dict.test_mutating_lookup()

parent 3774977d
......@@ -392,20 +392,27 @@ class DictTest(unittest.TestCase):
class NastyKey:
mutate_dict = None
def __init__(self, value):
self.value = value
def __hash__(self):
# hash collision!
return 1
def __eq__(self, other):
if self.mutate_dict:
self.mutate_dict[self] = 1
return self == other
d = {}
d[NastyKey()] = 0
NastyKey.mutate_dict = d
with self.assertRaises(RuntimeError):
d[NastyKey()] = None
if NastyKey.mutate_dict:
mydict, key = NastyKey.mutate_dict
NastyKey.mutate_dict = None
del mydict[key]
return self.value == other.value
key1 = NastyKey(1)
key2 = NastyKey(2)
d = {key1: 1}
NastyKey.mutate_dict = (d, key1)
with self.assertRaisesRegex(RuntimeError,
'dictionary changed size during lookup'):
d[key2] = 2
def test_repr(self):
d = {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment