def test_inprocess_cache_prevents_multiple_calls_multiple_fetch(self): fun = CB() cc = CachedCall('key', fun) self.assertEqual(fun.retvalue, cc()) cache.delete('key') self.assertEqual(fun.retvalue, cc()) self.assertEqual(1, fun.called)
def test_inprocess_cache_prevents_multiple_calls_multiple_fetch(self): fun = CB() cc = CachedCall('key', fun) self.assertEqual(fun.retvalue, cc()) cache.delete('key') self.assertEqual(fun.retvalue, cc()) self.assertEqual(1, fun.called)
def test_inprocess_cached_prevents_multiple_fetches_in_multicall(self): funs = [CB(retvalue=n) for n in [1, 2, 3, 4, 5]] calls = [CachedCall("key_%s" % e, fun) for e, fun in enumerate(funs)] # Uncached self.assertEquals([1, 2, 3], CachedCall.multicall(calls[:3])) # Remove some of the backing stores cache.delete('key_0') cache.delete('key_1') CachedCall.inprocess_cache.delete('key_2') # 1,2 in-process only, 3 in redis only, 4,5 uncached self.assertEquals([1, 2, 3, 4, 5], CachedCall.multicall(calls)) self.assertEquals([1] * len(funs), [fun.called for fun in funs])
def test_inprocess_cached_prevents_multiple_fetches_in_multicall(self): funs = [CB(retvalue=n) for n in [1,2,3,4,5]] calls = [CachedCall("key_%s" % e, fun) for e,fun in enumerate(funs)] # Uncached self.assertEquals([1,2,3], CachedCall.multicall(calls[:3])) # Remove some of the backing stores cache.delete('key_0') cache.delete('key_1') CachedCall.inprocess_cache.delete('key_2') # 1,2 in-process only, 3 in redis only, 4,5 uncached self.assertEquals([1,2,3,4,5], CachedCall.multicall(calls)) self.assertEquals([1] * len(funs), [fun.called for fun in funs])