Name Description Size Coverage
__init__.py 0 -
conftest.py 134 -
coroutine_tests.py coroutine_tests ~~~~~~~~~~~~~~~ This file gives access to a coroutine-based test class. This allows each test case to be defined as a pair of interacting coroutines, sending data to each other by yielding the flow of control. The advantage of this method is that we avoid the difficulty of using threads in Python, as well as the pain of using sockets and events to communicate and organise the communication. This makes the tests entirely deterministic and makes them behave identically on all platforms, as well as ensuring they both succeed and fail quickly. 2692 -
h2spectest.sh 448 -
helpers.py helpers ~~~~~~~ This module contains helpers for the h2 tests. 4865 -
test_basic_logic.py test_basic_logic ~~~~~~~~~~~~~~~~ Test the basic logic of the h2 state machines. 65417 -
test_closed_streams.py test_closed_streams ~~~~~~~~~~~~~~~~~~~ Tests that we handle closed streams correctly. 19300 -
test_complex_logic.py test_complex_logic ~~~~~~~~~~~~~~~~ More complex tests that try to do more. Certain tests don't really eliminate incorrect behaviour unless they do quite a bit. These tests should live here, to keep the pain in once place rather than hide it in the other parts of the test suite. 21420 -
test_config.py test_config ~~~~~~~~~~~ Test the configuration object. 5285 -
test_events.py test_events.py ~~~~~~~~~~~~~~ Specific tests for any function that is logically self-contained as part of events.py. 11765 -
test_exceptions.py test_exceptions ~~~~~~~~~~~~~~~ Tests that verify logic local to exceptions. 338 -
test_flow_control_window.py test_flow_control ~~~~~~~~~~~~~~~~~ Tests of the flow control management in h2 35646 -
test_h2_upgrade.py test_h2_upgrade.py ~~~~~~~~~~~~~~~~~~ This module contains tests that exercise the HTTP Upgrade functionality of hyper-h2, ensuring that clients and servers can upgrade their plaintext HTTP/1.1 connections to HTTP/2. 10158 -
test_head_request.py test_head_request ~~~~~~~~~~~~~~~~~ 1582 -
test_header_indexing.py test_header_indexing.py ~~~~~~~~~~~~~~~~~~~~~~~ This module contains tests that use HPACK header tuples that provide additional metadata to the hpack module about how to encode the headers. 23772 -
test_informational_responses.py test_informational_responses ~~~~~~~~~~~~~~~~~~~~~~~~~~ Tests that validate that hyper-h2 correctly handles informational (1XX) responses in its state machine. 14698 -
test_interacting_stacks.py test_interacting_stacks ~~~~~~~~~~~~~~~~~~~~~~~ These tests run two entities, a client and a server, in parallel threads. These two entities talk to each other, running what amounts to a number of carefully controlled simulations of real flows. This is to ensure that the stack as a whole behaves intelligently in both client and server cases. These tests are long, complex, and somewhat brittle, so they aren't in general recommended for writing the majority of test cases. Their purposes is primarily to validate that the top-level API of the library behaves as described. We should also consider writing helper functions to reduce the complexity of these tests, so that they can be written more easily, as they are remarkably useful. 4235 -
test_invalid_content_lengths.py test_invalid_content_lengths.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This module contains tests that use invalid content lengths, and validates that they fail appropriately. 4673 -
test_invalid_frame_sequences.py test_invalid_frame_sequences.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This module contains tests that use invalid frame sequences, and validates that they fail appropriately. 17592 -
test_invalid_headers.py test_invalid_headers.py ~~~~~~~~~~~~~~~~~~~~~~~ This module contains tests that use invalid header blocks, and validates that they fail appropriately. 35055 -
test_priority.py test_priority ~~~~~~~~~~~~~ Test the priority logic of Hyper-h2. 10973 -
test_related_events.py test_related_events.py ~~~~~~~~~~~~~~~~~~~~~~ Specific tests to validate the "related events" logic used by certain events inside hyper-h2. 12507 -
test_rfc7838.py test_rfc7838 ~~~~~~~~~~~~ Test the RFC 7838 ALTSVC support. 15036 -
test_rfc8441.py test_rfc8441 ~~~~~~~~~~~~ Test the RFC 8441 extended connect request support. 1128 -
test_settings.py test_settings ~~~~~~~~~~~~~ Test the Settings object. 16680 -
test_state_machines.py test_state_machines ~~~~~~~~~~~~~~~~~~~ These tests validate the state machines directly. Writing meaningful tests for this case can be tricky, so the majority of these tests use Hypothesis to try to talk about general behaviours rather than specific cases. 5694 -
test_stream_reset.py test_stream_reset ~~~~~~~~~~~~~~~~~ More complex tests that exercise stream resetting functionality to validate that connection state is appropriately maintained. Specifically, these tests validate that streams that have been reset accurately keep track of connection-level state. 4904 -
test_utility_functions.py test_utility_functions ~~~~~~~~~~~~~~~~~~~~~~ Tests for the various utility functions provided by hyper-h2. 6662 -