@@ -676,3 +676,44 @@ def close(self):
676
676
client .flush ()
677
677
678
678
assert seen == ["status_500" ]
679
+
680
+
681
+ def test_handle_request_error_basic_coverage (make_client , monkeypatch ):
682
+ client = make_client ()
683
+ transport = client .transport
684
+
685
+ monkeypatch .setattr (transport ._worker , "submit" , lambda fn : fn () or True )
686
+
687
+ # Track method calls
688
+ calls = []
689
+
690
+ def mock_on_dropped_event (reason ):
691
+ calls .append (("on_dropped_event" , reason ))
692
+
693
+ def mock_record_lost_event (reason , data_category = None , item = None ):
694
+ calls .append (("record_lost_event" , reason , data_category , item ))
695
+
696
+ monkeypatch .setattr (transport , "on_dropped_event" , mock_on_dropped_event )
697
+ monkeypatch .setattr (transport , "record_lost_event" , mock_record_lost_event )
698
+
699
+ # Test case 1: envelope is None
700
+ transport ._handle_request_error (envelope = None , loss_reason = "test_reason" )
701
+
702
+ assert len (calls ) == 2
703
+ assert calls [0 ] == ("on_dropped_event" , "test_reason" )
704
+ assert calls [1 ] == ("record_lost_event" , "network_error" , "error" , None )
705
+
706
+ # Reset
707
+ calls .clear ()
708
+
709
+ # Test case 2: envelope with items
710
+ envelope = Envelope ()
711
+ envelope .add_item (mock .MagicMock ()) # Simple mock item
712
+ envelope .add_item (mock .MagicMock ()) # Another mock item
713
+
714
+ transport ._handle_request_error (envelope = envelope , loss_reason = "connection_error" )
715
+
716
+ assert len (calls ) == 3
717
+ assert calls [0 ] == ("on_dropped_event" , "connection_error" )
718
+ assert calls [1 ][0 :2 ] == ("record_lost_event" , "network_error" )
719
+ assert calls [2 ][0 :2 ] == ("record_lost_event" , "network_error" )
0 commit comments