def test_property_deletion(self): stack = ContextStack() entity = FakeEntity({"field1": "one", "field2": "two"}) stack.top.cache_entity(["entity"], entity, caching.CachingSituation.DATASTORE_PUT) stack.push() # Enter transaction entity["field1"] = "oneone" del entity["field2"] stack.top.cache_entity(["entity"], entity, caching.CachingSituation.DATASTORE_PUT) stack.pop(apply_staged=True, clear_staged=True) self.assertEqual({"field1": "oneone"}, stack.top.cache["entity"])
def test_push_pop(self): stack = ContextStack() self.assertEqual({}, stack.top.cache) entity = FakeEntity({"bananas": 1}) stack.top.cache_entity(["bananas:1"], entity, caching.CachingSituation.DATASTORE_PUT) self.assertEqual({"bananas": 1}, stack.top.cache.values()[0]) stack.push() self.assertEqual([], stack.top.cache.values()) self.assertEqual(2, stack.size) stack.push() stack.top.cache_entity(["apples:2"], entity, caching.CachingSituation.DATASTORE_PUT) self.assertItemsEqual(["apples:2"], stack.top.cache.keys()) stack.pop() self.assertItemsEqual([], stack.top.cache.keys()) self.assertEqual(2, stack.size) self.assertEqual(1, stack.staged_count) updated = FakeEntity({"bananas": 3}) stack.top.cache_entity(["bananas:1"], updated, caching.CachingSituation.DATASTORE_PUT) stack.pop(apply_staged=True, clear_staged=True) self.assertEqual(1, stack.size) self.assertEqual({"bananas": 3}, stack.top.cache["bananas:1"]) self.assertEqual(0, stack.staged_count)