def test_precached_session(mocker): mocker.patch("requests.Session.post", return_value=MockedResponse()) # Update the cache with a handcrafted session adapter = adapters.HTTPAdapter(pool_connections=100, pool_maxsize=100) session = Session() session.mount('http://', adapter) session.mount('https://', adapter) request.cache_session(URI, session) # Submit a second request with different arguments assert len(request._session_cache) == 1 response = request.make_post_request(URI, b'request', timeout=60) assert response == "content" assert len(request._session_cache) == 1 # Ensure the timeout was passed to the request session = request._get_session(URI) session.post.assert_called_once_with(URI, data=b'request', timeout=60) # Ensure the adapter parameters match those we specified check_adapters_mounted(session) adapter = session.get_adapter(URI) assert isinstance(adapter, HTTPAdapter) assert adapter._pool_connections == 100 assert adapter._pool_maxsize == 100
def test_connect_to_testchain(self, our_address): uri = "http://0.0.0.0:8545" web3 = web3_via_http(uri, 63, 39) assert isinstance(web3.provider, HTTPProvider) assert web3.provider._request_kwargs['timeout'] == 63 for adapter in _get_session(uri).adapters.values(): assert adapter._pool_connections == 39 assert adapter._pool_maxsize == 39 assert isinstance(web3, Web3) assert eth_balance(web3, our_address) > Wad(0)
def test_user_provided_session(): adapter = HTTPAdapter(pool_connections=20, pool_maxsize=20) session = Session() session.mount('http://', adapter) session.mount('https://', adapter) provider = HTTPProvider(endpoint_uri=URI, session=session) web3 = Web3(provider) assert web3.manager.provider == provider session = request._get_session(URI) adapter = session.get_adapter(URI) assert isinstance(adapter, HTTPAdapter) assert adapter._pool_connections == 20 assert adapter._pool_maxsize == 20