예제 #1
0
 def f(n):
     x = X()
     if n:
         d = empty
     else:
         d = RWeakValueDictionary(X)
         d.set("a", x)
     return d.get("a") is x
예제 #2
0
 def f(n):
     x = X()
     if n:
         d = empty
     else:
         d = RWeakValueDictionary(str, X)
         d.set("a", x)
     return d.get("a") is x
예제 #3
0
 def f():
     d = RWeakValueDictionary(keyclass, X)
     x1, x3 = g(d)
     rgc.collect()
     rgc.collect()
     assert d.get(keys[0]) is x1
     assert d.get(keys[1]) is None
     assert d.get(keys[2]) is x3
     assert d.get(keys[3]) is None
     d.set(keys[0], None)
     assert d.get(keys[0]) is None
     assert d.get(keys[1]) is None
     assert d.get(keys[2]) is x3
     assert d.get(keys[3]) is None
     # resizing should also work
     for i in range(loop):
         d.set(make_key(i), x1)
     for i in range(loop):
         assert d.get(make_key(i)) is x1
     assert d.get(keys[0]) is None
     assert d.get(keys[1]) is None
     assert d.get(keys[2]) is x3
     assert d.get(keys[3]) is None
     # a subclass
     y = Y()
     d.set(keys[3], y)
     assert d.get(keys[3]) is y
     # storing a lot of Nones
     for i in range(loop, loop * 2 - 5):
         d.set(make_key(1000 + i), x1)
     for i in range(loop):
         d.set(make_key(i), None)
     for i in range(loop):
         assert d.get(make_key(i)) is None
     assert d.get(keys[0]) is None
     assert d.get(keys[1]) is None
     assert d.get(keys[2]) is x3
     assert d.get(keys[3]) is y
     for i in range(loop, loop * 2 - 5):
         assert d.get(make_key(1000 + i)) is x1
예제 #4
0
 def f():
     d = RWeakValueDictionary(X)
     x1, x3 = g(d)
     rgc.collect(); rgc.collect()
     assert d.get("abc") is x1
     assert d.get("def") is None
     assert d.get("ghi") is x3
     assert d.get("hello") is None
     d.set("abc", None)
     assert d.get("abc") is None
     assert d.get("def") is None
     assert d.get("ghi") is x3
     assert d.get("hello") is None
     # resizing should also work
     for i in range(loop):
         d.set(str(i), x1)
     for i in range(loop):
         assert d.get(str(i)) is x1
     assert d.get("abc") is None
     assert d.get("def") is None
     assert d.get("ghi") is x3
     assert d.get("hello") is None
     # a subclass
     y = Y()
     d.set("hello", y)
     assert d.get("hello") is y
     # storing a lot of Nones
     for i in range(loop, loop*2-5):
         d.set('%dfoobar' % i, x1)
     for i in range(loop):
         d.set(str(i), None)
     for i in range(loop):
         assert d.get(str(i)) is None
     assert d.get("abc") is None
     assert d.get("def") is None
     assert d.get("ghi") is x3
     assert d.get("hello") is y
     for i in range(loop, loop*2-5):
         assert d.get('%dfoobar' % i) is x1