feat: migrate to structlog (#46)

This commit is contained in:
banteg
2026-01-04 13:54:05 +04:00
committed by GitHub
parent 92302a6fe6
commit 9cb2b66fa2
16 changed files with 629 additions and 219 deletions
+6 -12
View File
@@ -1,9 +1,7 @@
import logging
import httpx
import pytest
from takopi.logging import RedactTokenFilter
from takopi.logging import setup_logging
from takopi.telegram import TelegramClient
@@ -38,19 +36,16 @@ async def test_telegram_429_no_retry() -> None:
@pytest.mark.anyio
async def test_no_token_in_logs_on_http_error(
caplog: pytest.LogCaptureFixture,
capsys: pytest.CaptureFixture[str],
) -> None:
token = "123:abcDEF_ghij"
redactor = RedactTokenFilter()
root_logger = logging.getLogger()
root_logger.addFilter(redactor)
setup_logging(debug=True)
def handler(request: httpx.Request) -> httpx.Response:
return httpx.Response(500, text="oops", request=request)
transport = httpx.MockTransport(handler)
caplog.set_level(logging.ERROR)
client = httpx.AsyncClient(transport=transport)
try:
tg = TelegramClient(token, client=client)
@@ -58,7 +53,6 @@ async def test_no_token_in_logs_on_http_error(
finally:
await client.aclose()
root_logger.removeFilter(redactor)
assert token not in caplog.text
assert "bot[REDACTED]" in caplog.text
out = capsys.readouterr().out
assert token not in out
assert "bot[REDACTED]" in out