Spaces:
Running
Running
| import logging | |
| from app.rag import tracing | |
| def test_trace_function_uses_metadata_factory(monkeypatch): | |
| captured = {} | |
| def fake_trace_call(name, fn, *args, run_type, metadata, **kwargs): | |
| captured.update(name=name, run_type=run_type, metadata=metadata) | |
| return fn(*args, **kwargs) | |
| monkeypatch.setattr(tracing, "trace_call", fake_trace_call) | |
| def decorated(value): | |
| return value.upper() | |
| assert decorated("hello") == "HELLO" | |
| assert captured == { | |
| "name": "answer-question", | |
| "run_type": "chain", | |
| "metadata": {"value": "hello"}, | |
| } | |
| def test_trace_function_shields_metadata_factory_exceptions(monkeypatch, caplog): | |
| captured = {} | |
| def fake_trace_call(name, fn, *args, run_type, metadata, **kwargs): | |
| captured["metadata"] = metadata | |
| return fn(*args, **kwargs) | |
| def failing_metadata_factory(value): | |
| raise KeyError(value) | |
| monkeypatch.setattr(tracing, "trace_call", fake_trace_call) | |
| def decorated(value): | |
| return value.upper() | |
| with caplog.at_level(logging.WARNING, logger=tracing.__name__): | |
| assert decorated("hello") == "HELLO" | |
| assert captured["metadata"] == {} | |
| assert "Metadata factory failed for trace 'answer-question'" in caplog.text | |
| assert "KeyError: 'hello'" in caplog.text | |