class PopTests(GaeTestCase): def setUp(self): super(PopTests, self).setUp() self.datastore_dict = DatastoreDict(model=DatastoreDictModel) self.datastore_dict.persist('key', 'value') def test_KeyError_on_missing_key(self): with self.assertRaises(KeyError): self.datastore_dict._pop('missing-key') def test_returns_default_on_missing_key(self): value = self.datastore_dict._pop('missing-key', default='value') self.assertEquals(value, 'value') def test_returns_popped_value(self): value = self.datastore_dict._pop('key') self.assertEquals(value, 'value') def test_updates_last_updated_when_popped(self): old_cache_val = memcache.get(self.datastore_dict.cache_key) self.datastore_dict._pop('key') new_cache_val = memcache.get(self.datastore_dict.cache_key) self.assertEqual(old_cache_val + 1, new_cache_val) def test_removes_popped_value_from_dict(self): self.datastore_dict._pop('key') entity = build_key(DatastoreDictModel, 'key').get() self.assertIsNone(entity) self.assertEquals(self.datastore_dict.durables(), {})
class DurablesTests(GaeTestCase): def setUp(self): super(DurablesTests, self).setUp() self.datastore_dict = DatastoreDict(model=DatastoreDictModel) def test_returns_empty_dict_if_no_entities(self): self.assertEqual(self.datastore_dict.durables(), {}) def test_returns_all_entities(self): self.datastore_dict.persist('key1', 'value') self.datastore_dict.persist('key2', 'value') self.datastore_dict.persist('key3', 'value') self.assertEqual(self.datastore_dict.durables(), {'key1': 'value', 'key2': 'value', 'key3': 'value'})