Module Expr Str Import alias Import alias Import alias ClassDef bases NameLoad body Expr Str Assign NameStore ListLoad TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str Assign NameStore ListLoad TupleLoad Str Str TupleLoad Str Str FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Assign NameStore NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad Num Num Num body Expr Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr AugAssignAdd NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword BinOpAdd NameLoad Num keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword BinOpAdd NameLoad Num keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AugAssignAdd NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad Num Num Num body Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword AttributeLoad NameLoad attr keyword ListLoad Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AugAssignSub NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword BinOpAdd NameLoad Num keyword AttributeLoad NameLoad attr keyword ListLoad Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AugAssignSub NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr Num Assert CompareEq AttributeLoad NameLoad attr Num decorator_list decorator_list ClassDef bases NameLoad body Expr Str Assign NameStore ListLoad TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str Assign NameStore ListLoad TupleLoad Str Str TupleLoad Str Str FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign NameStore NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad Num Num Num body Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AugAssignAdd NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad BinOpAdd NameLoad Num AttributeLoad NameLoad attr Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr BinOpAdd NameLoad Num AttributeLoad NameLoad attr AugAssignAdd NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad Num Num Num body Assign NameStore Call AttributeLoad NameLoad attr keyword Str keyword ListLoad Str keyword NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Str keyword NameLoad AugAssignSub NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr keyword BinOpAdd NameLoad Num keyword Str keyword NameLoad AugAssignSub NameStore Num Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr Num Assert CompareEq AttributeLoad NameLoad attr Num decorator_list decorator_list ClassDef bases NameLoad body Expr Str Assign NameStore ListLoad TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore ListComp SubscriptLoad NameLoad Slice NameLoad BinOpAdd NameLoad NameLoad comprehension NameStore Call NameLoad Num Call NameLoad NameLoad NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Num Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad ListLoad Str Expr Call AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr Str Expr Call AttributeLoad NameLoad attr Num NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assert CompareEq Call NameLoad NameLoad Num Assign TupleStore NameStore NameStore NameLoad Assert Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assert CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assert CompareEq AttributeLoad NameLoad attr Num Assert Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assert CompareEq AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assert CompareGt Call NameLoad NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword NameLoad keyword ListLoad Str Expr Call AttributeLoad NameLoad attr BinOpSub Call NameLoad NameLoad Num NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad With Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameStore body Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareIn Str Call AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr decorator_list Call AttributeLoad AttributeLoad NameLoad attr attr Str ListLoad Num Num FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assert CompareGt Call NameLoad NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr keyword Str keyword Num Expr Call AttributeLoad NameLoad attr BinOpSub Call NameLoad NameLoad Num NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad With Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameStore body Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareIn Str Call AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assert CompareGt Call NameLoad NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr keyword Str keyword Num Assign AttributeStore NameLoad attr Num Expr Call AttributeLoad NameLoad attr BinOpSub Call NameLoad NameLoad Num NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad With Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameStore body Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareIn Str Call AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr decorator_list decorator_list ClassDef bases NameLoad body Expr Str Assign NameStore ListLoad TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str TupleLoad Str Str Assign NameStore ListLoad TupleLoad Str Str TupleLoad Str Str FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr keyword Num keyword Num keyword NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore ListComp SubscriptLoad NameLoad Slice NameLoad BinOpAdd NameLoad NameLoad comprehension NameStore Call NameLoad Num Call NameLoad NameLoad NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Num Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad ListLoad Str Expr Call AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr Str Expr Call AttributeLoad NameLoad attr Num NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword Num keyword AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assert CompareEq Call NameLoad NameLoad Num Assign NameStore SubscriptLoad NameLoad Index Num Assert Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assert CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assert CompareEq AttributeLoad NameLoad attr Num Assert CompareEq AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword Num keyword AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assert CompareGt Call NameLoad NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword NameLoad keyword ListLoad Str Expr Call AttributeLoad NameLoad attr BinOpSub Call NameLoad NameLoad Num NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad With Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameStore body Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareIn Str Call AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr decorator_list Call AttributeLoad AttributeLoad NameLoad attr attr Str ListLoad Num Num Num FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword Num keyword AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assert CompareGt Call NameLoad NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr keyword Str keyword Num Expr Call AttributeLoad NameLoad attr BinOpSub Call NameLoad NameLoad Num NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad With Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameStore body Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareIn Str Call AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword Num keyword AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Num keyword NameLoad Assert CompareGt Call NameLoad NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr keyword Str keyword Num Assign AttributeStore NameLoad attr Num Expr Call AttributeLoad NameLoad attr BinOpSub Call NameLoad NameLoad Num NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad With Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameStore body Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareIn Str Call AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr keyword Num keyword AttributeLoad NameLoad attr keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword Num keyword AttributeLoad NameLoad attr keyword ListLoad Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr If NameLoad body Assert UnaryOpNot AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword Num keyword Num keyword AttributeLoad NameLoad attr With Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr keyword Num keyword AttributeLoad AttributeLoad NameLoad attr attr Assert CompareEq Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr decorator_list Call AttributeLoad AttributeLoad NameLoad attr attr Str ListLoad NameLoad NameLoad decorator_list
N/A N/A 
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.
 N/A pytest N/A h2 N/A h2.connection TestComplexClient N/A object N/A N/A 
    Complex tests for client-side stacks.
     N/A example_request_headers N/A N/A :authority example.com N/A :path / N/A :scheme https N/A :method GET N/A example_response_headers N/A N/A :status 200 N/A server fake-serv/0.1.0 test_correctly_count_server_streams N/A N/A self frame_factory N/A N/A N/A 
        We correctly count the number of server streams, both inbound and
        outbound.
         N/A c N/A N/A N/A h2 connection H2Connection client_side True N/A N/A N/A c initiate_connection N/A expected_inbound_streams expected_outbound_streams 0 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A stream_id N/A range 1 15 2 N/A N/A N/A N/A c send_headers stream_id N/A self example_request_headers N/A expected_outbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A f N/A N/A frame_factory build_push_promise_frame stream_id stream_id promised_stream_id N/A stream_id 1 headers N/A self example_request_headers N/A N/A N/A c receive_data N/A N/A f serialize N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A f N/A N/A frame_factory build_headers_frame stream_id N/A stream_id 1 headers N/A self example_response_headers N/A N/A N/A c receive_data N/A N/A f serialize N/A expected_inbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A stream_id N/A range 13 0 -2 N/A N/A N/A N/A c end_stream stream_id N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A f N/A N/A frame_factory build_headers_frame stream_id stream_id headers N/A self example_response_headers flags N/A END_STREAM N/A N/A N/A c receive_data N/A N/A f serialize N/A expected_outbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A f N/A N/A frame_factory build_headers_frame stream_id N/A stream_id 1 headers N/A self example_response_headers flags N/A END_STREAM N/A N/A N/A c receive_data N/A N/A f serialize N/A expected_inbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A N/A N/A c open_inbound_streams 0 N/A N/A N/A c open_outbound_streams 0 N/A N/A TestComplexServer N/A object N/A N/A 
    Complex tests for server-side stacks.
     N/A example_request_headers N/A N/A :authority example.com N/A :path / N/A :scheme https N/A :method GET N/A example_response_headers N/A N/A :status 200 N/A server fake-serv/0.1.0 test_correctly_count_server_streams N/A N/A self frame_factory N/A N/A N/A 
        We correctly count the number of server streams, both inbound and
        outbound.
         N/A c N/A N/A N/A h2 connection H2Connection client_side False N/A N/A N/A c receive_data N/A N/A frame_factory preamble N/A expected_inbound_streams expected_outbound_streams 0 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A stream_id N/A range 1 15 2 N/A N/A f N/A N/A frame_factory build_headers_frame headers N/A self example_request_headers stream_id stream_id N/A N/A N/A c receive_data N/A N/A f serialize N/A expected_inbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A N/A N/A c push_stream stream_id N/A stream_id 1 N/A self example_request_headers N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A N/A N/A c send_headers N/A stream_id 1 N/A self example_response_headers N/A expected_outbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A stream_id N/A range 13 0 -2 N/A N/A f N/A N/A frame_factory build_data_frame data flags N/A END_STREAM stream_id stream_id N/A N/A N/A c receive_data N/A N/A f serialize N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A N/A N/A c send_data stream_id end_stream True N/A expected_inbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A N/A N/A c send_data stream_id N/A stream_id 1 data end_stream True N/A expected_outbound_streams 1 N/A N/A N/A c open_inbound_streams expected_inbound_streams N/A N/A N/A c open_outbound_streams expected_outbound_streams N/A N/A N/A c open_inbound_streams 0 N/A N/A N/A c open_outbound_streams 0 N/A N/A TestContinuationFrames N/A object N/A N/A 
    Tests for the relatively complex CONTINUATION frame logic.
     N/A example_request_headers N/A N/A :authority example.com N/A :path / N/A :scheme https N/A :method GET _build_continuation_sequence N/A N/A self headers block_size frame_factory N/A N/A N/A f N/A N/A frame_factory build_headers_frame headers N/A header_data N/A f data N/A chunks N/A N/A header_data N/A x N/A x block_size N/A x N/A range 0 N/A len header_data block_size N/A N/A f data N/A N/A chunks pop 0 N/A frames N/A N/A N/A frame_factory build_continuation_frame c N/A c chunks N/A N/A f flags N/A set N/A END_STREAM N/A N/A N/A N/A N/A frames N/A -1 flags add END_HEADERS N/A N/A N/A frames insert 0 f N/A frames N/A test_continuation_frame_basic N/A N/A self frame_factory N/A N/A N/A 
        Test that we correctly decode a header block split across continuation
        frames.
         N/A c N/A N/A N/A h2 connection H2Connection client_side False N/A N/A N/A c initiate_connection N/A N/A N/A c receive_data N/A N/A frame_factory preamble N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A events N/A N/A c receive_data data N/A N/A N/A len events 2 N/A N/A first_event second_event events N/A N/A isinstance first_event N/A N/A h2 events RequestReceived N/A N/A N/A first_event headers N/A self example_request_headers N/A N/A N/A first_event stream_id 1 N/A N/A isinstance second_event N/A N/A h2 events StreamEnded N/A N/A N/A second_event stream_id 1 N/A test_continuation_cannot_interleave_headers N/A N/A self frame_factory stream_id N/A N/A N/A 
        We cannot interleave a new headers block with a CONTINUATION sequence.
         N/A c N/A N/A N/A h2 connection H2Connection client_side False N/A N/A N/A c initiate_connection N/A N/A N/A c receive_data N/A N/A frame_factory preamble N/A N/A N/A c clear_outbound_data_buffer N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A N/A N/A len frames 2 N/A bogus_frame N/A N/A frame_factory build_headers_frame headers N/A self example_request_headers stream_id stream_id flags N/A END_STREAM N/A N/A N/A frames insert N/A N/A len frames 2 bogus_frame N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A N/A N/A pytest raises N/A N/A h2 exceptions ProtocolError e N/A N/A N/A N/A c receive_data data N/A N/A invalid frame N/A N/A N/A str N/A e value lower N/A N/A N/A N/A pytest mark parametrize stream_id N/A 3 1 test_continuation_cannot_interleave_data N/A N/A self frame_factory N/A N/A N/A 
        We cannot interleave a data frame with a CONTINUATION sequence.
         N/A c N/A N/A N/A h2 connection H2Connection client_side False N/A N/A N/A c initiate_connection N/A N/A N/A c receive_data N/A N/A frame_factory preamble N/A N/A N/A c clear_outbound_data_buffer N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A N/A N/A len frames 2 N/A bogus_frame N/A N/A frame_factory build_data_frame data hello stream_id 1 N/A N/A N/A frames insert N/A N/A len frames 2 bogus_frame N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A N/A N/A pytest raises N/A N/A h2 exceptions ProtocolError e N/A N/A N/A N/A c receive_data data N/A N/A invalid frame N/A N/A N/A str N/A e value lower N/A test_continuation_cannot_interleave_unknown_frame N/A N/A self frame_factory N/A N/A N/A 
        We cannot interleave an unknown frame with a CONTINUATION sequence.
         N/A c N/A N/A N/A h2 connection H2Connection client_side False N/A N/A N/A c initiate_connection N/A N/A N/A c receive_data N/A N/A frame_factory preamble N/A N/A N/A c clear_outbound_data_buffer N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A N/A N/A len frames 2 N/A bogus_frame N/A N/A frame_factory build_data_frame data hello stream_id 1 N/A N/A bogus_frame type 88 N/A N/A N/A frames insert N/A N/A len frames 2 bogus_frame N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A N/A N/A pytest raises N/A N/A h2 exceptions ProtocolError e N/A N/A N/A N/A c receive_data data N/A N/A invalid frame N/A N/A N/A str N/A e value lower N/A N/A TestContinuationFramesPushPromise N/A object N/A N/A 
    Tests for the relatively complex CONTINUATION frame logic working with
    PUSH_PROMISE frames.
     N/A example_request_headers N/A N/A :authority example.com N/A :path / N/A :scheme https N/A :method GET N/A example_response_headers N/A N/A :status 200 N/A server fake-serv/0.1.0 _build_continuation_sequence N/A N/A self headers block_size frame_factory N/A N/A N/A f N/A N/A frame_factory build_push_promise_frame stream_id 1 promised_stream_id 2 headers headers N/A header_data N/A f data N/A chunks N/A N/A header_data N/A x N/A x block_size N/A x N/A range 0 N/A len header_data block_size N/A N/A f data N/A N/A chunks pop 0 N/A frames N/A N/A N/A frame_factory build_continuation_frame c N/A c chunks N/A N/A f flags N/A set N/A END_STREAM N/A N/A N/A N/A N/A frames N/A -1 flags add END_HEADERS N/A N/A N/A frames insert 0 f N/A frames N/A test_continuation_frame_basic_push_promise N/A N/A self frame_factory N/A N/A N/A 
        Test that we correctly decode a header block split across continuation
        frames when that header block is initiated with a PUSH_PROMISE.
         N/A c N/A N/A N/A h2 connection H2Connection client_side True N/A N/A N/A c initiate_connection N/A N/A N/A c send_headers stream_id 1 headers N/A self example_request_headers N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A events N/A N/A c receive_data data N/A N/A N/A len events 1 N/A event N/A events N/A 0 N/A N/A isinstance event N/A N/A h2 events PushedStreamReceived N/A N/A N/A event headers N/A self example_request_headers N/A N/A N/A event parent_stream_id 1 N/A N/A N/A event pushed_stream_id 2 N/A test_continuation_cannot_interleave_headers_pp N/A N/A self frame_factory stream_id N/A N/A N/A 
        We cannot interleave a new headers block with a CONTINUATION sequence
        when the headers block is based on a PUSH_PROMISE frame.
         N/A c N/A N/A N/A h2 connection H2Connection client_side True N/A N/A N/A c initiate_connection N/A N/A N/A c send_headers stream_id 1 headers N/A self example_request_headers N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A N/A N/A len frames 2 N/A bogus_frame N/A N/A frame_factory build_headers_frame headers N/A self example_response_headers stream_id stream_id flags N/A END_STREAM N/A N/A N/A frames insert N/A N/A len frames 2 bogus_frame N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A N/A N/A pytest raises N/A N/A h2 exceptions ProtocolError e N/A N/A N/A N/A c receive_data data N/A N/A invalid frame N/A N/A N/A str N/A e value lower N/A N/A N/A N/A pytest mark parametrize stream_id N/A 3 1 2 test_continuation_cannot_interleave_data N/A N/A self frame_factory N/A N/A N/A 
        We cannot interleave a data frame with a CONTINUATION sequence when
        that sequence began with a PUSH_PROMISE frame.
         N/A c N/A N/A N/A h2 connection H2Connection client_side True N/A N/A N/A c initiate_connection N/A N/A N/A c send_headers stream_id 1 headers N/A self example_request_headers N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A N/A N/A len frames 2 N/A bogus_frame N/A N/A frame_factory build_data_frame data hello stream_id 1 N/A N/A N/A frames insert N/A N/A len frames 2 bogus_frame N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A N/A N/A pytest raises N/A N/A h2 exceptions ProtocolError e N/A N/A N/A N/A c receive_data data N/A N/A invalid frame N/A N/A N/A str N/A e value lower N/A test_continuation_cannot_interleave_unknown_frame N/A N/A self frame_factory N/A N/A N/A 
        We cannot interleave an unknown frame with a CONTINUATION sequence when
        that sequence began with a PUSH_PROMISE frame.
         N/A c N/A N/A N/A h2 connection H2Connection client_side True N/A N/A N/A c initiate_connection N/A N/A N/A c send_headers stream_id 1 headers N/A self example_request_headers N/A frames N/A N/A self _build_continuation_sequence headers N/A self example_request_headers block_size 5 frame_factory frame_factory N/A N/A N/A len frames 2 N/A bogus_frame N/A N/A frame_factory build_data_frame data hello stream_id 1 N/A N/A bogus_frame type 88 N/A N/A N/A frames insert N/A N/A len frames 2 bogus_frame N/A data N/A N/A join N/A N/A N/A f serialize N/A f frames N/A N/A N/A pytest raises N/A N/A h2 exceptions ProtocolError e N/A N/A N/A N/A c receive_data data N/A N/A invalid frame N/A N/A N/A str N/A e value lower N/A test_stream_remotely_closed_disallows_push_promise N/A N/A self evict frame_factory N/A N/A N/A 
        Streams closed normally by the remote peer disallow PUSH_PROMISE
        frames, and cause a GOAWAY.
         N/A c N/A N/A N/A h2 connection H2Connection client_side True N/A N/A N/A c initiate_connection N/A N/A N/A c send_headers stream_id 1 headers N/A self example_request_headers end_stream True N/A f N/A N/A frame_factory build_headers_frame stream_id 1 headers N/A self example_response_headers flags N/A END_STREAM N/A N/A N/A c receive_data N/A N/A f serialize N/A N/A N/A c clear_outbound_data_buffer N/A evict N/A N/A N/A N/A c open_outbound_streams N/A f N/A N/A frame_factory build_push_promise_frame stream_id 1 promised_stream_id 2 headers N/A self example_request_headers N/A N/A N/A pytest raises N/A N/A h2 exceptions ProtocolError N/A N/A N/A N/A c receive_data N/A N/A f serialize N/A f N/A N/A frame_factory build_goaway_frame last_stream_id 0 error_code N/A N/A h2 errors PROTOCOL_ERROR N/A N/A N/A N/A c data_to_send N/A N/A f serialize N/A N/A N/A N/A pytest mark parametrize evict N/A True False N/A