test(langfuse_otel): annotate new request metadata tests

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
yucheng 2026-09-23 07:54:18 +00:00
parent 732d2c58e6
commit 4ab39e1100

View file

@ -1,5 +1,6 @@
import json
import os
from typing import Final
from unittest.mock import MagicMock, patch
import pytest
@ -483,9 +484,11 @@ class TestLangfuseOtelIntegration:
assert isinstance(config, OpenTelemetryConfig)
# Endpoint assertion removed as side effect is gone
def test_request_metadata_is_emitted_under_langfuse_observation_and_trace_metadata_keys(self, monkeypatch):
def test_request_metadata_is_emitted_under_langfuse_observation_and_trace_metadata_keys(
self, monkeypatch: pytest.MonkeyPatch
) -> None:
monkeypatch.setattr(litellm, "redact_user_api_key_info", False)
request_metadata = {
request_metadata: Final = {
"user_api_key_hash": "hash123",
"user_api_key_alias": "prod-key",
"user_api_key_user_id": "user-1",
@ -496,22 +499,18 @@ class TestLangfuseOtelIntegration:
"requester_ip_address": "10.0.0.1",
"requester_metadata": {"ticket": "LIT-8283"},
}
kwargs = {
kwargs: Final = {
"litellm_params": {"metadata": {}},
"standard_logging_object": {"metadata": request_metadata},
}
with patch(
"litellm.integrations.arize._utils.safe_set_attribute"
) as mock_safe_set_attribute:
with patch("litellm.integrations.arize._utils.safe_set_attribute") as mock_safe_set_attribute:
LangfuseOtelLogger._set_langfuse_specific_attributes(MagicMock(), kwargs, None)
actual = {call.args[1]: call.args[2] for call in mock_safe_set_attribute.call_args_list}
actual: Final = {call.args[1]: call.args[2] for call in mock_safe_set_attribute.call_args_list}
assert json.loads(actual["langfuse.observation.metadata"]) == {**request_metadata}
assert {
key: value for key, value in actual.items() if key.startswith("langfuse.trace.metadata.")
} == {
assert {key: value for key, value in actual.items() if key.startswith("langfuse.trace.metadata.")} == {
"langfuse.trace.metadata.user_api_key_alias": "prod-key",
"langfuse.trace.metadata.user_api_key_user_id": "user-1",
"langfuse.trace.metadata.user_api_key_end_user_id": "end-user-1",
@ -519,9 +518,9 @@ class TestLangfuseOtelIntegration:
"langfuse.trace.metadata.user_api_key_team_alias": "team-a",
}
def test_request_metadata_redaction_matches_vanilla_langfuse(self, monkeypatch):
def test_request_metadata_redaction_matches_vanilla_langfuse(self, monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setattr(litellm, "redact_user_api_key_info", True)
request_metadata = {
request_metadata: Final = {
"user_api_key_hash": "hash123",
"user_api_key_alias": "prod-key",
"user_api_key_user_id": "user-1",
@ -532,17 +531,15 @@ class TestLangfuseOtelIntegration:
"requester_ip_address": "10.0.0.1",
"requester_metadata": {"ticket": "LIT-8283"},
}
kwargs = {
kwargs: Final = {
"litellm_params": {"metadata": {}},
"standard_logging_object": {"metadata": request_metadata},
}
with patch(
"litellm.integrations.arize._utils.safe_set_attribute"
) as mock_safe_set_attribute:
with patch("litellm.integrations.arize._utils.safe_set_attribute") as mock_safe_set_attribute:
LangfuseOtelLogger._set_langfuse_specific_attributes(MagicMock(), kwargs, None)
actual = {call.args[1]: call.args[2] for call in mock_safe_set_attribute.call_args_list}
actual: Final = {call.args[1]: call.args[2] for call in mock_safe_set_attribute.call_args_list}
assert json.loads(actual["langfuse.observation.metadata"]) == {
"spend_logs_metadata": {"env": "prod"},
@ -551,20 +548,18 @@ class TestLangfuseOtelIntegration:
}
assert not [key for key in actual if key.startswith("langfuse.trace.metadata.")]
def test_request_metadata_keys_are_absent_without_standard_logging_object(self, monkeypatch):
def test_request_metadata_keys_are_absent_without_standard_logging_object(
self, monkeypatch: pytest.MonkeyPatch
) -> None:
monkeypatch.setattr(litellm, "redact_user_api_key_info", False)
kwargs = {"litellm_params": {"metadata": {"trace_metadata": {"k": "v"}}}}
kwargs: Final = {"litellm_params": {"metadata": {"trace_metadata": {"k": "v"}}}}
with patch(
"litellm.integrations.arize._utils.safe_set_attribute"
) as mock_safe_set_attribute:
with patch("litellm.integrations.arize._utils.safe_set_attribute") as mock_safe_set_attribute:
LangfuseOtelLogger._set_langfuse_specific_attributes(MagicMock(), kwargs, None)
actual = {call.args[1]: call.args[2] for call in mock_safe_set_attribute.call_args_list}
actual: Final = {call.args[1]: call.args[2] for call in mock_safe_set_attribute.call_args_list}
assert [key for key in actual if key.startswith("langfuse.trace.metadata")] == [
"langfuse.trace.metadata"
]
assert [key for key in actual if key.startswith("langfuse.trace.metadata")] == ["langfuse.trace.metadata"]
assert "langfuse.observation.metadata" not in actual