From 0b6bc126d70acc80b28553cfb899c89a6e783065 Mon Sep 17 00:00:00 2001 From: Jeff Smith Date: Sun, 19 Apr 2026 11:47:32 -0600 Subject: [PATCH] fix(logging): restore logger state in dictConfig test (#27) --- tests/test_logging.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/tests/test_logging.py b/tests/test_logging.py index dacbb50..c90036a 100644 --- a/tests/test_logging.py +++ b/tests/test_logging.py @@ -8,7 +8,7 @@ from decimal import Decimal import pytest -from quartermaster import month_service, service +from quartermaster import month_service from quartermaster.logging_config import LOG_CONFIG from quartermaster.models import Section @@ -94,24 +94,16 @@ def test_log_config_loads_via_dictconfig(): from quartermaster.logging_config import LOG_CONFIG - logging.config.dictConfig(LOG_CONFIG) - - -@pytest.fixture(autouse=True) -def _reset_quartermaster_logger(): - """Ensure the quartermaster logger propagates to root so caplog can capture records. - - logging.config.dictConfig (called in test_log_config_loads_via_dictconfig) sets - propagate=False on the quartermaster logger. caplog injects its handler into the - root logger, so records only reach it when propagation is enabled. This fixture - temporarily re-enables propagation for every test in this module and restores the - original value on teardown. - """ - qm_logger = logging.getLogger("quartermaster") - original_propagate = qm_logger.propagate - qm_logger.propagate = True - yield - qm_logger.propagate = original_propagate + qm = logging.getLogger("quartermaster") + saved_propagate = qm.propagate + saved_handlers = qm.handlers[:] + saved_level = qm.level + try: + logging.config.dictConfig(LOG_CONFIG) + finally: + qm.propagate = saved_propagate + qm.handlers = saved_handlers + qm.level = saved_level def _make_debt_minimum(db, name="Loan", amount=Decimal("100.00")):