Files
app/backend/tests/test_access_log.py
T

29 lines
845 B
Python

"""A token in a query string stays out of uvicorn's request lines."""
import logging
import fluksio.main # noqa: F401 - installs the filter
def test_a_token_in_the_query_is_not_logged() -> None:
records: list[logging.LogRecord] = []
handler = logging.Handler()
handler.emit = records.append # type: ignore[method-assign]
log = logging.getLogger("uvicorn.error")
level = log.level
log.addHandler(handler)
log.setLevel(logging.INFO)
try:
log.info(
'%s - "WebSocket %s" [accepted]',
"192.0.2.1:0",
"/api/v1/flows/ws?token=s3cr3t&x=1",
)
finally:
log.removeHandler(handler)
log.setLevel(level)
assert [record.getMessage() for record in records] == [
'192.0.2.1:0 - "WebSocket /api/v1/flows/ws?token=***&x=1" [accepted]'
]