Update tests/test_utils_logcfg.py
Run CI Tests / test (push) Successful in 2m36s

This commit is contained in:
2025-08-29 14:03:52 +02:00
parent 450f551a06
commit 4edf3646d5
+8 -9
View File
@@ -1,6 +1,6 @@
import logging
import logzero
from logzero import logger
from logzero import setup_logger
import pytest
import tempfile
import subprocess
@@ -50,18 +50,17 @@ def test_custom_log_outputs(levelname, logfunc, message, capsys):
# Test subprocess: top-level import logs only once
def test_import_logging_once_per_module(caplog):
caplog.set_level("TRACE")
def test_import_logging_once_per_module(monkeypatch):
captured = []
# Attach a logging handler so caplog can see logzero logs
handler = logging.StreamHandler()
logger.addHandler(handler)
# Replace the trace method with a capturing lambda
monkeypatch.setattr(logcfg.log, "trace", lambda msg: captured.append(msg))
import sys, importlib
# Force re-import so the hook is triggered
for m in ("math", "io", "random"):
sys.modules.pop(m, None)
importlib.import_module(m)
logs = [rec.message for rec in caplog.records]
for mod in ["math", "io", "random"]:
assert any(f"importing: {mod}" in msg for msg in logs), logs
matches = [msg for msg in captured if f"importing: {mod}" in msg]
assert len(matches) == 1, f"Expected 1 log for {mod}, got {len(matches)}; captured={captured}"