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
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
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