discord-support-issues / tests /test_logging_utils.py
alozowski's picture
alozowski HF Staff
Sync from GitHub via hub-sync
840c732 verified
Raw
History Blame Contribute Delete
1.94 kB
"""Tests for logging_utils.py."""
import logging
import re
from discord_support_issues.logging_utils import (
LOGGER_NAME,
configure_project_logging,
get_logger,
)
def test_console_suppressed_logs_still_write_to_file(tmp_path, capsys):
log_path = tmp_path / "project.log"
try:
configure_project_logging(level=logging.INFO, log_file=str(log_path))
logger = get_logger("tests.logging")
logger.info("visible log line")
logger.info(
"hidden log line",
extra={"show_in_console": False},
)
for handler in logging.getLogger(LOGGER_NAME).handlers:
handler.flush()
captured = capsys.readouterr()
assert "visible log line" in captured.err
assert "hidden log line" not in captured.err
assert captured.out == ""
log_text = log_path.read_text(encoding="utf-8")
assert "visible log line" in log_text
assert "hidden log line" in log_text
finally:
configure_project_logging(level=logging.INFO, log_file=None)
def test_logs_directory_uses_timestamped_filename(tmp_path):
log_dir = tmp_path / "logs"
requested_path = log_dir / "discord-support-issues.log"
try:
configure_project_logging(level=logging.INFO, log_file=str(requested_path))
logger = get_logger("tests.logging")
logger.info("timestamped log line")
for handler in logging.getLogger(LOGGER_NAME).handlers:
if handler.get_name() == "file":
handler.flush()
log_files = list(log_dir.glob("*.log"))
assert len(log_files) == 1
assert re.fullmatch(
rf"{re.escape(requested_path.stem)}-\d{{8}}-\d{{6}}\.log",
log_files[0].name,
)
assert "timestamped log line" in log_files[0].read_text(encoding="utf-8")
finally:
configure_project_logging(level=logging.INFO, log_file=None)