示例#1
0
    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)
示例#2
0
    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()), {})
示例#3
0
 def get_value(arg, kwarg=None):
     yield _ensure_background_tasks_finished()
     time.sleep(.200)
     yield _ensure_background_tasks_finished()
     return 0