Files
xiaobaifupan/next/tests/test_logging.py
T

34 lines
1.0 KiB
Python

import json
import logging
from backend.bootstrap.logging import JsonFormatter, redact
def test_nested_sensitive_values_are_redacted() -> None:
payload = {
"account": "leefer",
"api_key": "private-key",
"nested": {"refresh-token": "private-token", "count": 3},
}
assert redact(payload) == {
"account": "leefer",
"api_key": "[REDACTED]",
"nested": {"refresh-token": "[REDACTED]", "count": 3},
}
def test_json_formatter_keeps_context_without_secret_values() -> None:
record = logging.LogRecord(
"test", logging.INFO, __file__, 1, "saved token=plain-secret", (), None
)
record.request_id = "request-1"
record.context = {"token": "hidden", "feature": "health"}
payload = json.loads(JsonFormatter().format(record))
assert payload["timestamp"].endswith("+08:00")
assert payload["request_id"] == "request-1"
assert payload["message"] == "saved token=[REDACTED]"
assert payload["context"] == {"token": "[REDACTED]", "feature": "health"}