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
示例#2
0
    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