Name Description Size
__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