コード例 #1
0
def test_body_transitions_to_done_on_empty_body(delimiter, mocker):
    p = Parser(
        delimiter=delimiter,
        status_parser=mocker.stub(),
        header_parser=mocker.stub(),
        body_parser=mocker.Mock(return_value=b'body value'),
        start=States.Body
    )
    p.body()

    assert p.state == States.Done
コード例 #2
0
def test_body_too_much_data_and_transitions_to_done(delimiter, mocker):
    p = Parser(
        delimiter=delimiter,
        status_parser=mocker.stub(),
        header_parser=mocker.stub(),
        body_parser=mocker.Mock(side_effect=TooMuchDataError),
        start=States.Body
    )
    p.buffer = b'body value'
    p.result['headers']['Content-length'] = ContentLengthValue(length=1)

    with pytest.raises(TooMuchDataError):
        p.body()
    assert p.state == States.Done
コード例 #3
0
def test_body_saves_value_and_transitions_to_done(delimiter, mocker):
    p = Parser(
        delimiter=delimiter,
        status_parser=mocker.stub(),
        header_parser=mocker.stub(),
        body_parser=mocker.Mock(return_value=b'body value'),
        start=States.Body
    )
    p.buffer = b'body value'
    p.result['headers']['Content-length'] = ContentLengthValue(length=len(p.buffer))
    p.body()

    assert p.result['body'] == b'body value'
    assert p.state == States.Done