def test_permacache_should_return_data_from_db_if_data_source_barfs(self): def data_source_fetch_data(data_source): raise Exception() data_source = MockDataSource(self.Cache_key_of_prestored) data_returned_from_fetch_all = perma_cache(data_source_fetch_data)(data_source) key = db.Key.from_path("CachedData", self.Cache_key_of_prestored) data_from_database = CachedData.get(key).data data_from_database_rehydrated = json.loads(data_from_database) self.assertEquals(data_from_database_rehydrated, data_returned_from_fetch_all)
def test_permacache_should_always_write_returned_data_to_db(self): def data_source_fetch_data(data_source): return [{'data': 1}, {'data': 2}] cache_key = '23421' data_source = MockDataSource(cache_key) data_returned_from_fetch_all = perma_cache(data_source_fetch_data)(data_source) key = db.Key.from_path("CachedData", cache_key) data_from_database = CachedData.get(key).data data_from_database_rehydrated = json.loads(data_from_database) self.assertEquals(data_from_database_rehydrated, data_returned_from_fetch_all)
def test_permacache_should_return_data_from_db_if_data_source_barfs(self): def data_source_fetch_data(data_source): raise Exception() data_source = MockDataSource(self.Cache_key_of_prestored) data_returned_from_fetch_all = perma_cache(data_source_fetch_data)( data_source) key = db.Key.from_path("CachedData", self.Cache_key_of_prestored) data_from_database = CachedData.get(key).data data_from_database_rehydrated = json.loads(data_from_database) self.assertEquals(data_from_database_rehydrated, data_returned_from_fetch_all)
def test_permacache_should_always_write_returned_data_to_db(self): def data_source_fetch_data(data_source): return [{'data': 1}, {'data': 2}] cache_key = '23421' data_source = MockDataSource(cache_key) data_returned_from_fetch_all = perma_cache(data_source_fetch_data)( data_source) key = db.Key.from_path("CachedData", cache_key) data_from_database = CachedData.get(key).data data_from_database_rehydrated = json.loads(data_from_database) self.assertEquals(data_from_database_rehydrated, data_returned_from_fetch_all)