28 lines
889 B
Python
28 lines
889 B
Python
from opentelemetry.sdk.trace import TracerProvider
|
|
|
|
from app import telemetry
|
|
from app.worker import origin_links
|
|
|
|
|
|
def test_telemetry_is_fail_open_without_endpoint(monkeypatch) -> None:
|
|
monkeypatch.delenv("OTEL_EXPORTER_OTLP_ENDPOINT", raising=False)
|
|
monkeypatch.setattr(telemetry, "_runtime", None)
|
|
|
|
assert telemetry.init_telemetry("sms-test") is None
|
|
|
|
|
|
def test_structlog_processor_adds_active_trace_context() -> None:
|
|
tracer = TracerProvider().get_tracer("test")
|
|
|
|
with tracer.start_as_current_span("sms.operation"):
|
|
result = telemetry.add_trace_context(None, "info", {"event": "sms.safe"})
|
|
|
|
assert result["event"] == "sms.safe"
|
|
assert len(result["trace_id"]) == 32
|
|
assert len(result["span_id"]) == 16
|
|
|
|
|
|
def test_sms_worker_rejects_invalid_origin_context() -> None:
|
|
assert origin_links(None) == []
|
|
assert origin_links("00-invalid") == []
|