def getListData(self, list_id, query, start=None, limit=50): """See ListDataReader.getListData for specification.""" data_id = getDataId(query) if cached_list.isCachedListExists(data_id): if cached_list.isValid(data_id): return ListData(cached_list.getCachedItems(data_id), FINAL_BATCH) else: if not cached_list.isProcessing(data_id): self._start_caching(list_id, data_id, query) # return None because cache is not hit return None else: self._start_caching(list_id, data_id, query) # return None because cache is not hit return None
def testErrorForNonExsistentList(self): with self.assertRaises(ValueError): cached_list_logic.getCachedItems('none_existent', 0, 1)
def testRetrievingWithoutSpecifyingLimit(self): """Test whether all the items from the starting index is returned.""" cached_items = cached_list_logic.getCachedItems('test_list', start=2) self.assertListEqual([self.item3, self.item4, self.item5], cached_items)
def testRetrievingWithoutSpecifyingStart(self): """Test whether 0 is taken as the starting index.""" cached_items = cached_list_logic.getCachedItems('test_list', limit=3) self.assertListEqual([self.item1, self.item2, self.item3], cached_items)
def testRetrievingWithOverSpecifiedStart(self): cached_items = cached_list_logic.getCachedItems('test_list', 100, 3) self.assertEqual(0, len(cached_items))
def testRetrievingWithOverSpecifiedLimit(self): cached_items = cached_list_logic.getCachedItems('test_list', 2, 100) self.assertSequenceEqual([self.item3, self.item4, self.item5], cached_items)
def testRetrievingPartOfCachedItems(self): cached_items = cached_list_logic.getCachedItems('test_list', 1, 3) self.assertSequenceEqual([self.item2, self.item3, self.item4], cached_items)
def testRetrievingCachedItems(self): cached_items = cached_list_logic.getCachedItems('test_list', 0, 5) self.assertSequenceEqual( [self.item1, self.item2, self.item3, self.item4, self.item5], cached_items)