From e5a985040903b09a5ee18100d7986a1fc63586d4 Mon Sep 17 00:00:00 2001 From: Yucheng He Date: Sat, 5 Sep 2026 06:57:50 -0700 Subject: [PATCH] test(otel): cover legacy callback carrier rejection --- .../integrations/otel/test_otel_v2_destinations.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_litellm/integrations/otel/test_otel_v2_destinations.py b/tests/test_litellm/integrations/otel/test_otel_v2_destinations.py index bea83ff2407..0a608ee1099 100644 --- a/tests/test_litellm/integrations/otel/test_otel_v2_destinations.py +++ b/tests/test_litellm/integrations/otel/test_otel_v2_destinations.py @@ -12,6 +12,7 @@ from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanE from opentelemetry.trace import Status, StatusCode import litellm +from litellm.integrations.custom_logger import CustomLogger from litellm.integrations.otel import logger as otel_logger from litellm.integrations.otel.logger import ( OpenTelemetryV2, @@ -1238,7 +1239,11 @@ class TestPresetDegradation: assert [spec.endpoint for spec in logger.config.exporters] == [None] assert all(spec.requires_headers and not spec.headers for spec in logger.config.exporters) - def test_a_credential_less_proxy_with_a_destination_but_no_v2_carrier_falls_back(self, monkeypatch): + @pytest.mark.parametrize("registered", [(), (CustomLogger(),)]) + def test_a_credential_less_proxy_with_a_destination_but_no_v2_carrier_falls_back(self, monkeypatch, registered): + """Only a V2 logger publishes the provider the fan-out rides on, so a legacy + callback beside this one leaves the destination just as unreachable as no + callback at all, and the operator keeps the pre-V2 story.""" from litellm.litellm_core_utils.litellm_logging import _maybe_construct_otel_v2 credential_less_proxy(monkeypatch) @@ -1246,7 +1251,7 @@ class TestPresetDegradation: def run(): set_request_destinations((LANGFUSE_DEST,)) - return _maybe_construct_otel_v2("langfuse_otel", []) + return _maybe_construct_otel_v2("langfuse_otel", list(registered)) is_otel_v2_enabled.cache_clear() logger = in_fresh_context(run)