Skip to content

Commit eae786e

Browse files
authored
Merge pull request #1047 from suhr25/fix/logging-set-level-updates-logger
Fix LoggingHelper.set_level() not updating logger level
2 parents eb28665 + bf1e1ee commit eae786e

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

malariagen_data/util.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -855,9 +855,7 @@ def _value_error(
855855
value,
856856
expectation,
857857
):
858-
message = (
859-
f"Bad value for parameter {name}; expected {expectation}, " f"found {value!r}"
860-
)
858+
message = f"Bad value for parameter {name}; expected {expectation}, found {value!r}"
861859
raise ValueError(message)
862860

863861

@@ -935,6 +933,7 @@ def info(self, msg):
935933
self.flush()
936934

937935
def set_level(self, level):
936+
self._logger.setLevel(level)
938937
if self._handler is not None:
939938
self._handler.setLevel(level)
940939

tests/anoph/test_base.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,21 @@ def test_logging_helper_no_duplicate_output():
288288
), f"Duplicate log output: 'sentinel' appeared {output.count('sentinel')} times"
289289

290290

291+
def test_logging_helper_set_level_updates_logger():
292+
# Regression test: set_level() must update the logger level, not just the
293+
# handler level. Without fixing the logger, the logger itself would filter
294+
# out DEBUG messages before they ever reached the handler.
295+
logger_name = "test_logging_helper_set_level_updates_logger"
296+
out = io.StringIO()
297+
helper = LoggingHelper(name=logger_name, out=out, debug=False)
298+
helper.set_level(logging.DEBUG)
299+
helper.debug("should appear")
300+
output = out.getvalue()
301+
assert (
302+
"should appear" in output
303+
), "set_level(DEBUG) had no effect: debug message was silently dropped"
304+
305+
291306
def _strip_terms_of_use_from_manifest(manifest_path):
292307
"""Rewrite a manifest TSV file without terms-of-use columns."""
293308
df = pd.read_csv(manifest_path, sep="\t")

0 commit comments

Comments
 (0)