def test_msg():
    with server(success_response):
        connection = HTTPConnection(*listener)
        connection.request("GET", "/")
        response = connection.getresponse()
        assert response.msg['Set-Cookie'] == "foo=bar, baz=bar"
        assert response.msg['Content-Type'] == "text/plain"
def test_msg():
    with server(success_response):
        connection = HTTPConnection(*listener)
        connection.request("GET", "/")
        response = connection.getresponse()

        assert response.msg['Set-Cookie'] == "foo=bar, baz=bar"
        assert response.msg['Content-Type'] == "text/plain"
def test_success_response():
    with server(success_response):
        connection = HTTPConnection(*listener)
        connection.request("GET", "/")
        response = connection.getresponse()
        assert response.should_keep_alive()
        assert response.message_complete
        assert not response.should_close()
        assert response.read().decode() == 'Hello World!'
        assert response.content_length == 12
def test_success_response():
    with server(success_response):
        connection = HTTPConnection(*listener)
        connection.request("GET", "/")
        response = connection.getresponse()
        assert response.should_keep_alive()
        assert response.message_complete
        assert not response.should_close()
        assert response.read().decode() == 'Hello World!'
        assert response.content_length == 12
Exemple #5
0
def http_connection(url, proxy=None, connect_timeout=DEFAULT_CONNECT_TIMEOUT):
    """
    Make an HTTPConnection or HTTPSConnection

    :param url: url to connect to
    :param proxy: proxy to connect through, if any; None by default; str of the
                  format 'http://127.0.0.1:8888' to set one
    :returns: tuple of (parsed url, connection object)
    :raises ClientException: Unable to handle protocol scheme
    """
    url = encode_utf8(url)
    parsed = urlparse(url)
    proxy_parsed = urlparse(proxy) if proxy else None
    if parsed.scheme == 'http':
        conn = HTTPConnection((proxy_parsed if proxy else parsed).netloc,
                              timeout=connect_timeout)
    elif parsed.scheme == 'https':
        conn = HTTPSConnection((proxy_parsed if proxy else parsed).netloc,
                               timeout=connect_timeout)
    else:
        raise ClientException('Cannot handle protocol scheme %s for url %s' %
                              (parsed.scheme, repr(url)))

    def putheader_wrapper(func):
        @wraps(func)
        def putheader_escaped(key, value):
            func(encode_utf8(key), encode_utf8(value))

        return putheader_escaped

    conn.putheader = putheader_wrapper(conn.putheader)

    def request_wrapper(func):
        @wraps(func)
        def request_escaped(method, url, body=None, headers=None):
            url = encode_utf8(url)
            if body:
                body = encode_utf8(body)
            func(method, url, body=body, headers=headers or {})

        return request_escaped

    conn.request = request_wrapper(conn.request)
    if proxy:
        conn._set_tunnel(parsed.hostname, parsed.port)
    return parsed, conn
Exemple #6
0
def http_connection(url, proxy=None, connect_timeout=DEFAULT_CONNECT_TIMEOUT):
    """
    Make an HTTPConnection or HTTPSConnection

    :param url: url to connect to
    :param proxy: proxy to connect through, if any; None by default; str of the
                  format 'http://127.0.0.1:8888' to set one
    :returns: tuple of (parsed url, connection object)
    :raises ClientException: Unable to handle protocol scheme
    """
    url = encode_utf8(url)
    parsed = urlparse(url)
    proxy_parsed = urlparse(proxy) if proxy else None
    if parsed.scheme == 'http':
        conn = HTTPConnection(
            (proxy_parsed if proxy else parsed).netloc,
            timeout=connect_timeout)
    elif parsed.scheme == 'https':
        conn = HTTPSConnection(
            (proxy_parsed if proxy else parsed).netloc,
            timeout=connect_timeout)
    else:
        raise ClientException('Cannot handle protocol scheme %s for url %s' %
                              (parsed.scheme, repr(url)))

    def putheader_wrapper(func):

        @wraps(func)
        def putheader_escaped(key, value):
            func(encode_utf8(key), encode_utf8(value))
        return putheader_escaped
    conn.putheader = putheader_wrapper(conn.putheader)

    def request_wrapper(func):

        @wraps(func)
        def request_escaped(method, url, body=None, headers=None):
            url = encode_utf8(url)
            if body:
                body = encode_utf8(body)
            func(method, url, body=body, headers=headers or {})
        return request_escaped
    conn.request = request_wrapper(conn.request)
    if proxy:
        conn._set_tunnel(parsed.hostname, parsed.port)
    return parsed, conn
Exemple #7
0
 def __init__(self, *args, **kw):
     HTTPConnection.__init__(self, *args, **kw)
     CachingHTTPMixin.__init__(self, HTTPConnection)
def test_httplib_exception():
    with server(wrong_response_status_line):
        connection = HTTPConnection(*listener)
        connection.request("GET", '/')
        with pytest.raises(HTTPException):
            connection.getresponse()
def test_httplib_exception():
    with server(wrong_response_status_line):
        connection = HTTPConnection(*listener)
        connection.request("GET", '/')
        with pytest.raises(HTTPException):
            connection.getresponse()