| 1 | import json |
| 2 | import logging |
| 3 | |
| 4 | from app.observability import StructuredFormatter |
| 5 | |
| 6 | |
| 7 | def test_structured_logs_redact_headers_and_provider_query_tokens() -> None: |
| 8 | record = logging.LogRecord( |
| 9 | "app.gateway", logging.ERROR, __file__, 1, |
| 10 | "failure Authorization: Bearer header-secret url=https://provider.invalid/data?api_token=query-secret&fmt=json", |
| 11 | (), None, |
| 12 | ) |
| 13 | output = json.loads(StructuredFormatter("ibkr-connector", "AZURE").format(record)) |
| 14 | assert "header-secret" not in output["message"] |
| 15 | assert "query-secret" not in output["message"] |
| 16 | assert output["message"].count("<redacted>") == 2 |