File size: 1,232 Bytes
88e3f4a | 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 | import time
from omniff.observability import RequestTrace, get_logger, setup_logging
def test_request_trace_creates_id():
trace = RequestTrace()
assert len(trace.request_id) == 12
def test_span_measures_time():
trace = RequestTrace()
with trace.span("test_op"):
time.sleep(0.01)
assert len(trace.spans) == 1
assert trace.spans[0].name == "test_op"
assert trace.spans[0].duration_ms >= 5
def test_timing_breakdown():
trace = RequestTrace()
with trace.span("a"):
pass
with trace.span("b"):
pass
bd = trace.timing_breakdown()
assert "a" in bd
assert "b" in bd
def test_total_ms():
trace = RequestTrace()
time.sleep(0.01)
assert trace.total_ms >= 5
def test_span_metadata():
trace = RequestTrace()
with trace.span("load", model="test-model"):
pass
assert trace.spans[0].metadata["model"] == "test-model"
def test_get_logger():
log = get_logger("test")
assert log.name == "omniff.test"
def test_get_logger_root():
log = get_logger()
assert log.name == "omniff"
def test_setup_logging():
setup_logging(level="DEBUG")
log = get_logger("test_setup")
assert log.getEffectiveLevel() == 10
|