44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
import os
|
|
import sys
|
|
from contextlib import contextmanager
|
|
|
|
|
|
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
if PROJECT_ROOT not in sys.path:
|
|
sys.path.insert(0, PROJECT_ROOT)
|
|
|
|
|
|
from observability.langfuse_tracing import propagate_conversation_session
|
|
import observability.langfuse_tracing as tracing_module
|
|
|
|
|
|
def test_propagate_conversation_session_uses_conversation_id_as_session(monkeypatch):
|
|
captured: dict[str, object] = {}
|
|
|
|
@contextmanager
|
|
def fake_propagate_attributes(**kwargs):
|
|
captured.update(kwargs)
|
|
yield
|
|
|
|
monkeypatch.setattr(tracing_module, "_langfuse_is_configured", lambda: True)
|
|
monkeypatch.setattr(
|
|
tracing_module,
|
|
"propagate_attributes",
|
|
fake_propagate_attributes,
|
|
)
|
|
|
|
with propagate_conversation_session(
|
|
conversation_id="conversation-123",
|
|
metadata={"model": "cadagent", "turn": 2},
|
|
tags=["cadagent", "event_stream"],
|
|
):
|
|
pass
|
|
|
|
assert captured["session_id"] == "conversation-123"
|
|
assert captured["tags"] == ["cadagent", "event_stream"]
|
|
assert captured["metadata"] == {
|
|
"conversation_id": "conversation-123",
|
|
"model": "cadagent",
|
|
"turn": "2",
|
|
}
|