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