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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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])