示例#1
0
def test_timeout_repr():
    timeout = httpcore.TimeoutConfig(timeout=5.0)
    assert repr(timeout) == "TimeoutConfig(timeout=5.0)"

    timeout = httpcore.TimeoutConfig(read_timeout=5.0)
    assert (
        repr(timeout) ==
        "TimeoutConfig(connect_timeout=None, read_timeout=5.0, write_timeout=None)"
    )
    async def send(
        self,
        request,
        stream=False,
        timeout=None,
        verify=True,
        cert=None,
        proxies=None,
    ):

        method = request.method
        url = request.url
        headers = [(_encode(k), _encode(v))
                   for k, v in request.headers.items()]

        if not request.body:
            body = b""
        elif isinstance(request.body, str):
            body = _encode(request.body)
        else:
            body = request.body

        if isinstance(timeout, tuple):
            timeout_kwargs = {
                "connect_timeout": timeout[0],
                "read_timeout": timeout[1],
            }
        else:
            timeout_kwargs = {
                "connect_timeout": timeout,
                "read_timeout": timeout,
            }

        ssl = httpcore.SSLConfig(cert=cert, verify=verify)
        timeout = httpcore.TimeoutConfig(**timeout_kwargs)

        try:
            response = await self.pool.request(
                method,
                url,
                headers=headers,
                body=body,
                stream=stream,
                ssl=ssl,
                timeout=timeout,
            )
        except (httpcore.BadResponse, socket.error) as err:
            raise ConnectionError(err, request=request)
        except httpcore.ConnectTimeout as err:
            raise requests.exceptions.ConnectTimeout(err, request=request)
        except httpcore.ReadTimeout as err:
            raise requests.exceptions.ReadTimeout(err, request=request)

        return self.build_response(request, response)
示例#3
0
def test_timeout_eq():
    timeout = httpcore.TimeoutConfig(timeout=5.0)
    assert timeout == httpcore.TimeoutConfig(timeout=5.0)