def test_same_key_set_twice(self): strategy = ModuleDictStrategy(space) storage = strategy.get_empty_storage() d = W_ModuleDictObject(space, strategy, storage) v1 = strategy.version x = object() d.setitem("a", x) v2 = strategy.version assert v1 is not v2 d.setitem("a", x) v3 = strategy.version assert v2 is v3
def test_same_key_set_twice(self): strategy = ModuleDictStrategy(space) storage = strategy.get_empty_storage() d = W_ModuleDictObject(space, strategy, storage) v1 = strategy.version x = object() d.setitem("a", x) v2 = strategy.version assert v1 is not v2 d.setitem("a", x) v3 = strategy.version assert v2 is v3
def test_devolve(self): strategy = ModuleDictStrategy(space) storage = strategy.get_empty_storage() d = W_ModuleDictObject(space, strategy, storage) key = "a" w_key = self.FakeString(key) d.setitem(w_key, 1) c = d.get_global_cache(key) assert c.getvalue(space) == 1 assert c.valid d.setitem(5, 1) assert not c.valid
def test_basic_property_cells(self): strategy = ModuleDictStrategy(space) storage = strategy.get_empty_storage() d = W_ModuleDictObject(space, strategy, storage) v1 = strategy.version key = "a" w_key = self.FakeString(key) d.setitem(w_key, 1) v2 = strategy.version assert v1 is not v2 assert d.getitem(w_key) == 1 assert d.get_strategy().getdictvalue_no_unwrapping(d, key) == 1 d.setitem(w_key, 2) v3 = strategy.version assert v2 is not v3 assert d.getitem(w_key) == 2 assert d.get_strategy().getdictvalue_no_unwrapping(d, key).w_value == 2 d.setitem(w_key, 3) v4 = strategy.version assert v3 is v4 assert d.getitem(w_key) == 3 assert d.get_strategy().getdictvalue_no_unwrapping(d, key).w_value == 3 d.delitem(w_key) v5 = strategy.version assert v5 is not v4 assert d.getitem(w_key) is None assert d.get_strategy().getdictvalue_no_unwrapping(d, key) is None
def test_basic_property_cells(self): strategy = ModuleDictStrategy(space) storage = strategy.get_empty_storage() d = W_ModuleDictObject(space, strategy, storage) v1 = strategy.version key = "a" w_key = self.FakeString(key) d.setitem(w_key, 1) v2 = strategy.version assert v1 is not v2 assert d.getitem(w_key) == 1 assert d.get_strategy().getdictvalue_no_unwrapping(d, key) == 1 d.setitem(w_key, 2) v3 = strategy.version assert v2 is not v3 assert d.getitem(w_key) == 2 assert d.get_strategy().getdictvalue_no_unwrapping(d, key).w_value == 2 d.setitem(w_key, 3) v4 = strategy.version assert v3 is v4 assert d.getitem(w_key) == 3 assert d.get_strategy().getdictvalue_no_unwrapping(d, key).w_value == 3 d.delitem(w_key) v5 = strategy.version assert v5 is not v4 assert d.getitem(w_key) is None assert d.get_strategy().getdictvalue_no_unwrapping(d, key) is None