test_logging_context.py
1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from __future__ import annotations
from services.shared.logging import build_log_context
from services.shared.observability import CorrelationContext, correlation_scope
def test_build_log_context_uses_current_correlation_context():
context = CorrelationContext(
trace_id="trace-1",
task_id="task-1",
span_id="span-1",
source="runtime",
attributes={"request_id": "req-1", "empty": ""},
)
with correlation_scope(context):
payload = build_log_context(component="crawler")
assert payload == {
"trace_id": "trace-1",
"task_id": "task-1",
"span_id": "span-1",
"source": "runtime",
"request_id": "req-1",
"component": "crawler",
}
def test_build_log_context_allows_explicit_values_to_override_current_context():
context = CorrelationContext(
trace_id="trace-old",
task_id="task-old",
span_id="span-old",
source="runtime",
)
with correlation_scope(context):
payload = build_log_context(
trace_id="trace-new",
task_id="task-new",
span_id="span-new",
source="web_api.app",
host="0.0.0.0",
)
assert payload == {
"trace_id": "trace-new",
"task_id": "task-new",
"span_id": "span-new",
"source": "web_api.app",
"host": "0.0.0.0",
}