2
from pypy.tool.algo.multiweakdict import MultiWeakKeyDictionary
10
d = MultiWeakKeyDictionary()
20
assert d[a1, a2] == 12
23
assert d[a2, a1] == 21
24
assert d[a2, a2] == 22
26
assert dict.fromkeys(d.keys()) == {(a1, a2): None,
33
assert dict.fromkeys(d.keys()) == {(a1, a2): None,
38
assert d[a1, a2] == 12
40
assert d[a2, a1] == 21
41
assert d[a2, a2] == 22
43
py.test.raises(KeyError, "d[a2,]")
46
locals() # obscure fix for CPython -- make sure a1 is no longer in
47
# the cached f_locals of the frame
48
gc.collect() # less obscure fix for other Python implementations
49
assert dict.fromkeys(d.keys()) == {(a2, a2): None,
51
assert d[a2, a2] == 22