Example #1
0
def test_header_callback():
    func = pretend.call_recorder(lambda name, value: None)

    parser = HTTPParser()
    parser.callback(Callback.http_header, func)
    parser.parse(b"HTTP/1.1 200 OK\r\nFoo: Bar\r\n\r\n")

    assert parser.finished
    assert not parser.errored
    assert func.calls == [pretend.call(b"Foo", b"Bar")]
Example #2
0
def test_status_code_callback():
    func = pretend.call_recorder(lambda status_code: None)

    parser = HTTPParser()
    parser.callback(Callback.status_code, func)
    parser.parse(b"HTTP/1.1 200 OK\r\n\r\n")

    assert parser.finished
    assert not parser.errored
    assert func.calls == [pretend.call(200)]
Example #3
0
def test_element_callback_response(callback, expected):
    func = pretend.call_recorder(lambda data: None)

    parser = HTTPParser()
    parser.callback(callback, func)
    parser.parse(b"HTTP/1.1 200 OK\r\n\r\n")

    assert parser.finished
    assert not parser.errored
    assert func.calls == [pretend.call(expected)]
Example #4
0
def test_callback_error(callback, data):
    @pretend.call_recorder
    def raiser(*args, **kwargs):
        raise Exception

    parser = HTTPParser()
    parser.callback(callback, raiser)
    parser.parse(data)

    assert parser.finished
    assert parser.errored
    assert parser.error == Error.General
Example #5
0
def test_unknown_callback():
    parser = HTTPParser()

    with pytest.raises(ValueError):
        parser.callback("wat", lambda: None)