@@ -751,3 +751,58 @@ def test_handle_success_spans_and_metrics(self):
751
751
# ─── no events when only metrics enabled ─────────────────────────────────
752
752
logs = log_exporter .get_finished_logs ()
753
753
self .assertFalse (logs , "Did not expect any logs" )
754
+
755
+ def test_get_span_name_with_generation_name (self ):
756
+ """Test _get_span_name returns generation_name when present"""
757
+ otel = OpenTelemetry ()
758
+ kwargs = {
759
+ "litellm_params" : {
760
+ "metadata" : {
761
+ "generation_name" : "custom_span"
762
+ }
763
+ }
764
+ }
765
+ result = otel ._get_span_name (kwargs )
766
+ self .assertEqual (result , "custom_span" )
767
+
768
+ def test_get_span_name_without_generation_name (self ):
769
+ """Test _get_span_name returns default when generation_name missing"""
770
+ from litellm .integrations .opentelemetry import LITELLM_REQUEST_SPAN_NAME
771
+
772
+ otel = OpenTelemetry ()
773
+ kwargs = {"litellm_params" : {"metadata" : {}}}
774
+ result = otel ._get_span_name (kwargs )
775
+ self .assertEqual (result , LITELLM_REQUEST_SPAN_NAME )
776
+
777
+ @patch ('litellm.turn_off_message_logging' , False )
778
+ def test_maybe_log_raw_request_creates_span (self ):
779
+ """Test _maybe_log_raw_request creates span when logging enabled"""
780
+ from litellm .integrations .opentelemetry import RAW_REQUEST_SPAN_NAME
781
+
782
+ otel = OpenTelemetry ()
783
+ otel .message_logging = True
784
+
785
+ mock_tracer = MagicMock ()
786
+ mock_span = MagicMock ()
787
+ mock_tracer .start_span .return_value = mock_span
788
+ otel .get_tracer_to_use_for_request = MagicMock (return_value = mock_tracer )
789
+ otel .set_raw_request_attributes = MagicMock ()
790
+ otel ._to_ns = MagicMock (return_value = 1234567890 )
791
+
792
+ kwargs = {"litellm_params" : {"metadata" : {}}}
793
+ otel ._maybe_log_raw_request (kwargs , {}, datetime .now (), datetime .now (), MagicMock ())
794
+
795
+ mock_tracer .start_span .assert_called_once ()
796
+ self .assertEqual (mock_tracer .start_span .call_args [1 ]['name' ], RAW_REQUEST_SPAN_NAME )
797
+
798
+ @patch ('litellm.turn_off_message_logging' , True )
799
+ def test_maybe_log_raw_request_skips_when_logging_disabled (self ):
800
+ """Test _maybe_log_raw_request skips when logging disabled"""
801
+ otel = OpenTelemetry ()
802
+ mock_tracer = MagicMock ()
803
+ otel .get_tracer_to_use_for_request = MagicMock (return_value = mock_tracer )
804
+
805
+ kwargs = {"litellm_params" : {"metadata" : {}}}
806
+ otel ._maybe_log_raw_request (kwargs , {}, datetime .now (), datetime .now (), MagicMock ())
807
+
808
+ mock_tracer .start_span .assert_not_called ()
0 commit comments