Files
2026-02-22 18:58:55 +08:00

43 lines
1.3 KiB
Python

from __future__ import annotations
from types import SimpleNamespace
from app.core.request_id import (
REQUEST_ID_HEADER,
get_or_create_request_id,
get_request_id_from_headers,
new_request_id,
set_request_id_header,
set_request_id_on_state,
)
def test_new_request_id_format() -> None:
rid = new_request_id()
assert rid.startswith("req_")
assert len(rid) > 8
def test_get_request_id_from_headers() -> None:
assert get_request_id_from_headers({REQUEST_ID_HEADER: " req_1 "}) == "req_1"
assert get_request_id_from_headers({}) is None
def test_get_or_create_request_id_uses_header() -> None:
req = SimpleNamespace(headers={REQUEST_ID_HEADER: "req_x"})
assert get_or_create_request_id(req) == "req_x"
def test_get_or_create_request_id_uses_state_when_present() -> None:
req = SimpleNamespace(headers={}, state=SimpleNamespace(request_id="req_state"))
assert get_or_create_request_id(req) == "req_state"
def test_set_request_id_on_state_and_header() -> None:
req = SimpleNamespace(headers={})
res = SimpleNamespace(headers={})
set_request_id_on_state(req, "req_abc")
set_request_id_header(res, "req_abc")
assert req.state.request_id == "req_abc"
assert res.headers[REQUEST_ID_HEADER] == "req_abc"