@@ -619,9 +619,9 @@ def test_record_lost_event_transaction_item(capturing_server, make_client, span_
619
619
transport .record_lost_event (reason = "test" , item = transaction_item )
620
620
client .flush ()
621
621
622
- (captured ,) = capturing_server .captured # Should only be one envelope
622
+ (captured ,) = capturing_server .captured
623
623
envelope = captured .envelope
624
- (item ,) = envelope .items # Envelope should only have one item
624
+ (item ,) = envelope .items
625
625
626
626
assert item .type == "client_report"
627
627
@@ -641,3 +641,38 @@ def test_record_lost_event_transaction_item(capturing_server, make_client, span_
641
641
"reason" : "test" ,
642
642
"quantity" : span_count + 1 ,
643
643
} in discarded_events
644
+
645
+
646
+ def test_handle_unexpected_status_invokes_handle_request_error (
647
+ make_client , monkeypatch
648
+ ):
649
+ client = make_client ()
650
+ transport = client .transport
651
+
652
+ monkeypatch .setattr (transport ._worker , "submit" , lambda fn : fn () or True )
653
+
654
+ def stub_request (method , endpoint , body = None , headers = None ):
655
+ class MockResponse :
656
+ def __init__ (self ):
657
+ self .status = 500 # Integer
658
+ self .data = b"server error"
659
+ self .headers = {}
660
+
661
+ def close (self ):
662
+ pass
663
+
664
+ return MockResponse ()
665
+
666
+ monkeypatch .setattr (transport , "_request" , stub_request )
667
+
668
+ seen = []
669
+ monkeypatch .setattr (
670
+ transport ,
671
+ "_handle_request_error" ,
672
+ lambda envelope , loss_reason : seen .append (loss_reason ),
673
+ )
674
+
675
+ client .capture_event ({"message" : "test" })
676
+ client .flush ()
677
+
678
+ assert seen == ["status_500" ]
0 commit comments