38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
import logging
|
|
import sys
|
|
import pytest
|
|
from slic.utils.logign import ignore_log_msg
|
|
|
|
# Define an independent logger for testing
|
|
log = logging.getLogger("test_logger")
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def setup_logger():
|
|
# Remove all handlers
|
|
for h in log.handlers[:]:
|
|
log.removeHandler(h)
|
|
|
|
# Attach a fresh StreamHandler to stderr
|
|
handler = logging.StreamHandler(sys.stderr)
|
|
formatter = logging.Formatter('%(levelname)s:%(message)s')
|
|
handler.setFormatter(formatter)
|
|
log.addHandler(handler)
|
|
|
|
log.setLevel(logging.DEBUG)
|
|
|
|
def test_logger_capture_with_capsys(capsys):
|
|
capsys.readouterr()
|
|
log.warning("visible log")
|
|
captured = capsys.readouterr().err
|
|
print("Captured:", repr(captured))
|
|
assert "visible log" in captured
|
|
|
|
def test_ignore_log_msg_filters_warning(capsys):
|
|
capsys.readouterr()
|
|
with ignore_log_msg(log, lvl="WARNING", msg="to ignore"):
|
|
log.warning("to ignore")
|
|
log.warning("keep this")
|
|
captured = capsys.readouterr().err
|
|
assert "to ignore" not in captured
|
|
assert "keep this" in captured
|