@@ -390,17 +390,22 @@ def test_resets_further_frames_after_recv_reset(self,
390
390
assert not events
391
391
assert c .data_to_send () == rst_frame .serialize ()
392
392
393
+ # "An endpoint MUST ignore frames that it receives on closed streams
394
+ # after it has sent a RST_STREAM frame."
395
+ # The initial RST_STREAM was seen in the previous assert. Additional
396
+ # frames should be ignored.
393
397
events = c .receive_data (f .serialize () * 3 )
394
398
assert not events
395
- assert c .data_to_send () == rst_frame . serialize () * 3
399
+ assert c .data_to_send () == b""
396
400
397
401
# Iterate over the streams to make sure it's gone, then confirm the
398
402
# behaviour is unchanged.
399
403
c .open_outbound_streams
400
404
405
+ # Additional frames should continue to be ignored
401
406
events = c .receive_data (f .serialize () * 3 )
402
407
assert not events
403
- assert c .data_to_send () == rst_frame . serialize () * 3
408
+ assert c .data_to_send () == b""
404
409
405
410
def test_resets_further_data_frames_after_recv_reset (self ,
406
411
frame_factory ):
@@ -445,15 +450,15 @@ def test_resets_further_data_frames_after_recv_reset(self,
445
450
446
451
events = c .receive_data (f .serialize () * 3 )
447
452
assert not events
448
- assert c .data_to_send () == expected * 3
453
+ assert c .data_to_send () == b""
449
454
450
455
# Iterate over the streams to make sure it's gone, then confirm the
451
456
# behaviour is unchanged.
452
457
c .open_outbound_streams
453
458
454
459
events = c .receive_data (f .serialize () * 3 )
455
460
assert not events
456
- assert c .data_to_send () == expected * 3
461
+ assert c .data_to_send () == b""
457
462
458
463
@pytest .mark .parametrize (
459
464
"frame" ,
@@ -486,6 +491,7 @@ def test_resets_further_frames_after_send_reset(self,
486
491
end_stream = False
487
492
)
488
493
494
+ # Send initial RST_STREAM
489
495
c .reset_stream (1 , h2 .errors .ErrorCodes .INTERNAL_ERROR )
490
496
491
497
rst_frame = frame_factory .build_rst_stream_frame (
@@ -496,23 +502,24 @@ def test_resets_further_frames_after_send_reset(self,
496
502
f = frame (self , frame_factory )
497
503
events = c .receive_data (f .serialize ())
498
504
499
- rst_frame = frame_factory .build_rst_stream_frame (
500
- 1 , h2 .errors .ErrorCodes .STREAM_CLOSED
501
- )
505
+ # "An endpoint MUST ignore frames that it receives on closed streams
506
+ # after it has sent a RST_STREAM frame."
507
+ # The initial RST_STREAM was sent in the test setup. Additional frames
508
+ # should be ignored.
502
509
assert not events
503
- assert c .data_to_send () == rst_frame . serialize ()
510
+ assert c .data_to_send () == b""
504
511
505
512
events = c .receive_data (f .serialize () * 3 )
506
513
assert not events
507
- assert c .data_to_send () == rst_frame . serialize () * 3
514
+ assert c .data_to_send () == b""
508
515
509
516
# Iterate over the streams to make sure it's gone, then confirm the
510
517
# behaviour is unchanged.
511
518
c .open_outbound_streams
512
519
513
520
events = c .receive_data (f .serialize () * 3 )
514
521
assert not events
515
- assert c .data_to_send () == rst_frame . serialize () * 3
522
+ assert c .data_to_send () == b""
516
523
517
524
def test_resets_further_data_frames_after_send_reset (self ,
518
525
frame_factory ):
@@ -535,6 +542,7 @@ def test_resets_further_data_frames_after_send_reset(self,
535
542
end_stream = False
536
543
)
537
544
545
+ # Send initial RST_STREAM
538
546
c .reset_stream (1 , h2 .errors .ErrorCodes .INTERNAL_ERROR )
539
547
540
548
c .clear_outbound_data_buffer ()
@@ -544,20 +552,16 @@ def test_resets_further_data_frames_after_send_reset(self,
544
552
)
545
553
events = c .receive_data (f .serialize ())
546
554
assert not events
547
- expected = frame_factory .build_rst_stream_frame (
548
- stream_id = 1 ,
549
- error_code = h2 .errors .ErrorCodes .STREAM_CLOSED ,
550
- ).serialize ()
551
- assert c .data_to_send () == expected
555
+ assert c .data_to_send () == b""
552
556
553
557
events = c .receive_data (f .serialize () * 3 )
554
558
assert not events
555
- assert c .data_to_send () == expected * 3
559
+ assert c .data_to_send () == b""
556
560
557
561
# Iterate over the streams to make sure it's gone, then confirm the
558
562
# behaviour is unchanged.
559
563
c .open_outbound_streams
560
564
561
565
events = c .receive_data (f .serialize () * 3 )
562
566
assert not events
563
- assert c .data_to_send () == expected * 3
567
+ assert c .data_to_send () == b""
0 commit comments