def test_should_return_current_value_on_first_call_after_update_time_reached_but_not_expiration_time(self): # given value = 0 @memoize( configuration=MutableCacheConfiguration .initialized_with(DefaultInMemoryCacheConfiguration()) .set_entry_builder(ProvidedLifeSpanCacheEntryBuilder(update_after=timedelta(milliseconds=100), expire_after=timedelta(minutes=5))) ) @gen.coroutine def get_value(arg, kwarg=None): return value # when res1 = yield get_value('test', kwarg='args') time.sleep(.200) yield _ensure_background_tasks_finished() value = 1 res2 = yield get_value('test', kwarg='args') # then self.assertEqual(0, res1) self.assertEqual(0, res2)
def test_should_pass_extracted_key_to_storage_on_entry_added_to_cache( self): # given key_extractor = Mock() key_extractor.format_key = Mock(return_value='key') storage = Mock() storage.get = Mock(return_value=_as_future(None)) storage.offer = Mock(return_value=_as_future(None)) @memoize(configuration=MutableCacheConfiguration.initialized_with( DefaultInMemoryCacheConfiguration()).set_key_extractor( key_extractor).set_storage(storage)) @gen.coroutine def sample_method(arg, kwarg=None): return arg, kwarg # when yield sample_method('test', kwarg='args') yield _ensure_background_tasks_finished() # then storage.get.assert_called_once_with('key') _assert_called_once_with(self, storage.offer, ('key', AnyObject()), {})
def get_value(arg, kwarg=None): yield _ensure_background_tasks_finished() time.sleep(.200) yield _ensure_background_tasks_finished() return 0