27 lines
920 B
Python
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
|