Name Description Size 0 134 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 448 helpers ~~~~~~~ This module contains helpers for the h2 tests. 4865 test_basic_logic ~~~~~~~~~~~~~~~~ Test the basic logic of the h2 state machines. 65417 test_closed_streams ~~~~~~~~~~~~~~~~~~~ Tests that we handle closed streams correctly. 19300 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 ~~~~~~~~~~~ Test the configuration object. 5285 ~~~~~~~~~~~~~~ Specific tests for any function that is logically self-contained as part of 11765 test_exceptions ~~~~~~~~~~~~~~~ Tests that verify logic local to exceptions. 338 test_flow_control ~~~~~~~~~~~~~~~~~ Tests of the flow control management in h2 35646 ~~~~~~~~~~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~ 1582 ~~~~~~~~~~~~~~~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~ Tests that validate that hyper-h2 correctly handles informational (1XX) responses in its state machine. 14698 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This module contains tests that use invalid content lengths, and validates that they fail appropriately. 4673 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This module contains tests that use invalid frame sequences, and validates that they fail appropriately. 17592 ~~~~~~~~~~~~~~~~~~~~~~~ This module contains tests that use invalid header blocks, and validates that they fail appropriately. 35055 test_priority ~~~~~~~~~~~~~ Test the priority logic of Hyper-h2. 10973 ~~~~~~~~~~~~~~~~~~~~~~ Specific tests to validate the "related events" logic used by certain events inside hyper-h2. 12507 test_rfc7838 ~~~~~~~~~~~~ Test the RFC 7838 ALTSVC support. 15036 test_rfc8441 ~~~~~~~~~~~~ Test the RFC 8441 extended connect request support. 1128 test_settings ~~~~~~~~~~~~~ Test the Settings object. 16680 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 ~~~~~~~~~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~ Tests for the various utility functions provided by hyper-h2. 6662