py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV)
py$(PYV): commands[0]> pytest --cov-report=xml --cov-report=term --cov=hyperframe
============================= test session starts ==============================
platform sunos5 -- Python $(PYTHON_VERSION).X -- $(PYTHON)
cachedir: .tox/py$(PYV)/.pytest_cache
rootdir: $(@D)
configfile: pyproject.toml
collecting ... collected 109 items

tests/test_external_collection.py::TestExternalCollection::test[tc_filepath0] SKIPPED
tests/test_flags.py::TestFlags::test_add PASSED
tests/test_flags.py::TestFlags::test_remove PASSED
tests/test_flags.py::TestFlags::test_validation PASSED
tests/test_flags.py::TestFlags::test_repr PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_base_frame_ignores_flags PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_base_frame_cant_serialize PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_base_frame_cant_parse_body PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_parse_frame_header_unknown_type_strict PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_parse_frame_header_ignore_first_bit_of_stream_id PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_parse_frame_header_unknown_type PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_flags_are_persisted PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_parse_body_unknown_type PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_can_round_trip_unknown_frames PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_repr PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_frame_explain PASSED
tests/test_frames.py::TestGeneralFrameBehaviour::test_cannot_parse_invalid_frame_header PASSED
tests/test_frames.py::TestDataFrame::test_repr PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_has_correct_flags PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_serializes_properly[testdata] PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_serializes_properly[data1] PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_with_padding_serializes_properly PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_parses_properly PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_with_padding_parses_properly PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_with_invalid_padding_errors PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_with_padding_calculates_flow_control_len PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_zero_length_padding_calculates_flow_control_len PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_without_padding_calculates_flow_control_len PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_comes_on_a_stream PASSED
tests/test_frames.py::TestDataFrame::test_long_data_frame PASSED
tests/test_frames.py::TestDataFrame::test_body_length_behaves_correctly PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_with_invalid_padding_fails_to_parse PASSED
tests/test_frames.py::TestDataFrame::test_data_frame_with_no_length_parses PASSED
tests/test_frames.py::TestPriorityFrame::test_repr PASSED
tests/test_frames.py::TestPriorityFrame::test_priority_frame_has_no_flags PASSED
tests/test_frames.py::TestPriorityFrame::test_priority_frame_default_serializes_properly PASSED
tests/test_frames.py::TestPriorityFrame::test_priority_frame_with_all_data_serializes_properly PASSED
tests/test_frames.py::TestPriorityFrame::test_priority_frame_with_all_data_parses_properly PASSED
tests/test_frames.py::TestPriorityFrame::test_priority_frame_invalid PASSED
tests/test_frames.py::TestPriorityFrame::test_priority_frame_comes_on_a_stream PASSED
tests/test_frames.py::TestPriorityFrame::test_short_priority_frame_errors PASSED
tests/test_frames.py::TestRstStreamFrame::test_repr PASSED
tests/test_frames.py::TestRstStreamFrame::test_rst_stream_frame_has_no_flags PASSED
tests/test_frames.py::TestRstStreamFrame::test_rst_stream_frame_serializes_properly PASSED
tests/test_frames.py::TestRstStreamFrame::test_rst_stream_frame_parses_properly PASSED
tests/test_frames.py::TestRstStreamFrame::test_rst_stream_frame_comes_on_a_stream PASSED
tests/test_frames.py::TestRstStreamFrame::test_rst_stream_frame_must_have_body_length_four PASSED
tests/test_frames.py::TestSettingsFrame::test_repr PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_has_only_one_flag PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_serializes_properly PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_with_settings PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_without_settings PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_with_ack PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_ack_and_settings PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_parses_properly PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frame_invalid_body_length PASSED
tests/test_frames.py::TestSettingsFrame::test_settings_frames_never_have_streams PASSED
tests/test_frames.py::TestSettingsFrame::test_short_settings_frame_errors PASSED
tests/test_frames.py::TestPushPromiseFrame::test_repr PASSED
tests/test_frames.py::TestPushPromiseFrame::test_push_promise_frame_flags PASSED
tests/test_frames.py::TestPushPromiseFrame::test_push_promise_frame_serializes_properly PASSED
tests/test_frames.py::TestPushPromiseFrame::test_push_promise_frame_parses_properly PASSED
tests/test_frames.py::TestPushPromiseFrame::test_push_promise_frame_with_padding PASSED
tests/test_frames.py::TestPushPromiseFrame::test_push_promise_frame_with_invalid_padding_fails_to_parse PASSED
tests/test_frames.py::TestPushPromiseFrame::test_push_promise_frame_with_no_length_parses PASSED
tests/test_frames.py::TestPushPromiseFrame::test_push_promise_frame_invalid PASSED
tests/test_frames.py::TestPushPromiseFrame::test_short_push_promise_errors PASSED
tests/test_frames.py::TestPingFrame::test_repr PASSED
tests/test_frames.py::TestPingFrame::test_ping_frame_has_only_one_flag PASSED
tests/test_frames.py::TestPingFrame::test_ping_frame_serializes_properly PASSED
tests/test_frames.py::TestPingFrame::test_no_more_than_8_octets PASSED
tests/test_frames.py::TestPingFrame::test_ping_frame_parses_properly PASSED
tests/test_frames.py::TestPingFrame::test_ping_frame_never_has_a_stream PASSED
tests/test_frames.py::TestPingFrame::test_ping_frame_has_no_more_than_body_length_8 PASSED
tests/test_frames.py::TestPingFrame::test_ping_frame_has_no_less_than_body_length_8 PASSED
tests/test_frames.py::TestGoAwayFrame::test_repr PASSED
tests/test_frames.py::TestGoAwayFrame::test_go_away_has_no_flags PASSED
tests/test_frames.py::TestGoAwayFrame::test_goaway_serializes_properly PASSED
tests/test_frames.py::TestGoAwayFrame::test_goaway_frame_parses_properly PASSED
tests/test_frames.py::TestGoAwayFrame::test_goaway_frame_never_has_a_stream PASSED
tests/test_frames.py::TestGoAwayFrame::test_short_goaway_frame_errors PASSED
tests/test_frames.py::TestWindowUpdateFrame::test_repr PASSED
tests/test_frames.py::TestWindowUpdateFrame::test_window_update_has_no_flags PASSED
tests/test_frames.py::TestWindowUpdateFrame::test_window_update_serializes_properly PASSED
tests/test_frames.py::TestWindowUpdateFrame::test_windowupdate_frame_parses_properly PASSED
tests/test_frames.py::TestWindowUpdateFrame::test_short_windowupdate_frame_errors PASSED
tests/test_frames.py::TestHeadersFrame::test_repr PASSED
tests/test_frames.py::TestHeadersFrame::test_headers_frame_flags PASSED
tests/test_frames.py::TestHeadersFrame::test_headers_frame_serializes_properly PASSED
tests/test_frames.py::TestHeadersFrame::test_headers_frame_parses_properly PASSED
tests/test_frames.py::TestHeadersFrame::test_headers_frame_with_priority_parses_properly PASSED
tests/test_frames.py::TestHeadersFrame::test_headers_frame_with_priority_serializes_properly PASSED
tests/test_frames.py::TestHeadersFrame::test_headers_frame_with_invalid_padding_fails_to_parse PASSED
tests/test_frames.py::TestHeadersFrame::test_headers_frame_with_no_length_parses PASSED
tests/test_frames.py::TestContinuationFrame::test_repr PASSED
tests/test_frames.py::TestContinuationFrame::test_continuation_frame_flags PASSED
tests/test_frames.py::TestContinuationFrame::test_continuation_frame_serializes PASSED
tests/test_frames.py::TestContinuationFrame::test_continuation_frame_parses_properly PASSED
tests/test_frames.py::TestAltSvcFrame::test_repr PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_frame_flags PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_frame_with_origin_serializes_properly PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_frame_with_origin_parses_properly PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_frame_without_origin_serializes_properly PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_frame_without_origin_parses_properly PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_frame_with_origin_and_stream_serializes_properly PASSED
tests/test_frames.py::TestAltSvcFrame::test_short_altsvc_frame_errors PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_with_unicode_origin_fails PASSED
tests/test_frames.py::TestAltSvcFrame::test_altsvc_with_unicode_field_fails PASSED
tests/test_frames.py::TestExtensionFrame::test_repr PASSED

Required test coverage of 100.0% reached. Total coverage: 100.00%

======== 108 passed, 1 skipped ========
  py$(PYV): OK
  congratulations :)