def latest_block_based_cache_middleware(): return construct_latest_block_based_cache_middleware( cache_class=dict, average_block_time_sample_size=1, default_average_block_time=0.1, rpc_whitelist={'fake_endpoint'}, )
def latest_block_based_cache_middleware(): return construct_latest_block_based_cache_middleware( cache_class=dict, average_block_time_sample_size=1, default_average_block_time=0.1, rpc_whitelist={'fake_endpoint'}, )
def test_latest_block_cache_middleware_does_not_cache_get_latest_block( w3_base, block_data_middleware, result_generator_middleware): w3 = w3_base w3.middleware_onion.add(block_data_middleware) w3.middleware_onion.add(result_generator_middleware) current_block_hash = w3.eth.get_block('latest')['hash'] def cache_class(): return { generate_cache_key((current_block_hash, 'eth_getBlockByNumber', [ 'latest' ])): { 'result': 'value-a' }, } w3.middleware_onion.add( construct_latest_block_based_cache_middleware( cache_class=cache_class, rpc_whitelist={'eth_getBlockByNumber'}, )) assert w3.manager.request_blocking('eth_getBlockByNumber', ['latest']) != 'value-a'
def test_latest_block_based_cache_middleware_pulls_from_cache( w3_base, block_data_middleware, result_generator_middleware): w3 = w3_base w3.middleware_stack.add(block_data_middleware) w3.middleware_stack.add(result_generator_middleware) current_block_hash = w3.eth.getBlock('latest')['hash'] def cache_class(): return { generate_cache_key((current_block_hash, 'fake_endpoint', [1])): { 'result': 'value-a' }, } w3.middleware_stack.add( construct_latest_block_based_cache_middleware( cache_class=cache_class, rpc_whitelist={'fake_endpoint'}, )) assert w3.manager.request_blocking('fake_endpoint', [1]) == 'value-a'
def test_latest_block_based_cache_middleware_pulls_from_cache( w3_base, block_data_middleware, result_generator_middleware): w3 = w3_base w3.middleware_stack.add(block_data_middleware) w3.middleware_stack.add(result_generator_middleware) current_block_hash = w3.eth.getBlock('latest')['hash'] def cache_class(): return { generate_cache_key( (current_block_hash, 'fake_endpoint', [1]) ): {'result': 'value-a'}, } w3.middleware_stack.add(construct_latest_block_based_cache_middleware( cache_class=cache_class, rpc_whitelist={'fake_endpoint'}, )) assert w3.manager.request_blocking('fake_endpoint', [1]) == 'value-a'