class DatastoreDictPersistTests(GaeTestCase): def setUp(self): super(DatastoreDictPersistTests, self).setUp() self.datastore_dict = DatastoreDict(model=DatastoreDictModel) def test_creates_datastore_entity(self): self.datastore_dict.persist('key', 'value') entity = build_key(DatastoreDictModel, 'key').get() self.assertEqual(entity.key.id(), 'key') self.assertEqual(entity.value, 'value') def test_updates_existing_entity(self): self.datastore_dict.persist('key', 'value') self.datastore_dict.persist('key', 'new_value') entity = build_key(DatastoreDictModel, 'key').get() self.assertEqual(entity.key.id(), 'key') self.assertEqual(entity.value, 'new_value') def test_updates_cache_value(self): cache_val = self.datastore_dict.last_updated() self.assertEqual(cache_val, 1) self.datastore_dict.persist('key', 'value') cache_val = self.datastore_dict.last_updated() self.assertEqual(cache_val, 2)
class SetDefaultTests(GaeTestCase): def setUp(self): super(SetDefaultTests, self).setUp() self.datastore_dict = DatastoreDict(model=DatastoreDictModel) def test_does_not_touch_last_updated_if_key_exists(self): self.datastore_dict.persist('key', 'value') old_cache_val = self.datastore_dict.last_updated() self.datastore_dict._setdefault('key', 'new_value') new_cache_val = self.datastore_dict.last_updated() self.assertEqual(old_cache_val, new_cache_val) def test_updates_last_updated_on_create(self): old_cache_val = self.datastore_dict.last_updated() self.datastore_dict._setdefault('key', 'value') new_cache_val = memcache.get(self.datastore_dict.cache_key) self.assertEqual(old_cache_val + 1, new_cache_val) def test_creates_new_entity(self): self.datastore_dict._setdefault('key', 'value') entity = build_key(DatastoreDictModel, 'key').get() self.assertEqual(entity.key.id(), 'key') self.assertEqual(entity.value, 'value')
class LastUpdatedTests(GaeTestCase): def setUp(self): super(LastUpdatedTests, self).setUp() self.datastore_dict = DatastoreDict(model=DatastoreDictModel) def test_returns_initial_value_if_no_updates(self): value = self.datastore_dict.last_updated() self.assertEquals(value, 1) def test_returns_intial_value_if_no_cache_key(self): memcache.delete(self.datastore_dict.cache_key) value = self.datastore_dict.last_updated() self.assertEquals(value, 1)
class TouchLastUpdatedTests(GaeTestCase): def setUp(self): super(TouchLastUpdatedTests, self).setUp() self.datastore_dict = DatastoreDict(model=DatastoreDictModel) def test_increments_last_updated(self): old_value = self.datastore_dict.last_updated() self.datastore_dict.touch_last_updated() new_value = self.datastore_dict.last_updated() self.assertEquals(new_value, old_value + 1) def test_uses_last_synced_if_no_cache_key(self): old_value = self.datastore_dict.last_updated() memcache.delete(self.datastore_dict.cache_key) self.datastore_dict.touch_last_updated() new_value = self.datastore_dict.last_updated() self.assertEquals(new_value, old_value + 1)