-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_parser.py
More file actions
73 lines (60 loc) · 2.64 KB
/
Copy pathtest_parser.py
File metadata and controls
73 lines (60 loc) · 2.64 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from logscope.parser import parse_line
def test_parse_info_brackets():
entry = parse_line("[INFO] System up and running.")
assert entry.level == "INFO"
assert entry.message == "System up and running."
def test_parse_error_no_brackets():
entry = parse_line("ERROR: Disk space is low.")
assert entry.level == "ERROR"
assert entry.message == "Disk space is low."
def test_parse_warning_normalize():
entry = parse_line("[WARNING] Deprecated feature used.")
assert entry.level == "WARN"
assert entry.message == "Deprecated feature used."
def test_parse_trace():
entry = parse_line("[TRACE] - entering method fn()")
assert entry.level == "TRACE"
assert entry.message == "entering method fn()"
def test_parse_json_log():
log_line = '{"timestamp": "2026-03-14T15:30:00", "level": "fatal", "message": "Kernel panic"}'
entry = parse_line(log_line)
assert entry.level == "FATAL"
assert entry.message == "Kernel panic"
def test_parse_json_log_alternative_keys():
log_line = '{"log.level": "debug", "msg": "Entering function A"}'
entry = parse_line(log_line)
assert entry.level == "DEBUG"
assert entry.message == "Entering function A"
def test_parse_unknown():
entry = parse_line("Just some random text without a level")
assert entry.level == "UNKNOWN"
assert entry.message == "Just some random text without a level"
def test_parse_json_observability_fields():
log_line = (
'{"level":"error","message":"timeout","service":"checkout-api",'
'"trace_id":"abcd1234efgh5678ijklmnop","span_id":"span99"}'
)
entry = parse_line(log_line)
assert entry.level == "ERROR"
assert entry.service == "checkout-api"
assert entry.trace_id == "abcd1234efgh5678ijklmnop"
assert entry.span_id == "span99"
def test_parse_docker_json_log_message_and_inner_level():
log_line = '{"log":"[ERROR] payment failed\\n","stream":"stderr","time":"2026-03-14T15:30:00Z"}'
entry = parse_line(log_line)
assert entry.level == "ERROR"
assert entry.message == "payment failed"
assert entry.timestamp is not None
def test_parse_opentelemetry_json_fields():
log_line = (
'{"severity_text":"warn","body":"checkout latency high",'
'"resource":{"attributes":{"service.name":"checkout-api"}},'
'"trace_id":"4bf92f3577b34da6a3ce929d0e0e4736",'
'"span_id":"00f067aa0ba902b7"}'
)
entry = parse_line(log_line)
assert entry.level == "WARN"
assert entry.message == "checkout latency high"
assert entry.service == "checkout-api"
assert entry.trace_id == "4bf92f3577b34da6a3ce929d0e0e4736"
assert entry.span_id == "00f067aa0ba902b7"