Files

27 lines
920 B
Python

import logging
import httpx
import pytest
from app.checker import EndpointChecker
from app.config import Settings
async def public_resolver(host: str, port: int) -> list[str]:
return ["93.184.216.34"]
@pytest.mark.anyio
async def test_logs_redact_credentials_query_and_fragment(caplog: pytest.LogCaptureFixture) -> None:
checker = EndpointChecker(
Settings(),
transport=httpx.MockTransport(lambda request: httpx.Response(200)),
resolver=public_resolver,
)
with caplog.at_level(logging.INFO, logger="endpoint_monitor.checker"):
await checker.check("monitor-1", "https://example.com/path?token=topsecret#fragment")
record = next(record for record in caplog.records if getattr(record, "event", None) == "check_completed")
assert record.url == "https://example.com/path"
assert "topsecret" not in record.getMessage()
assert "topsecret" not in record.url