You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
motief/tests/test_logging_config.py

50 lines
1.6 KiB

import logging
import pytest
from logging_config import configure_logging
class TestConfigureLogging:
def _clear_handlers(self):
root = logging.getLogger()
root.handlers.clear()
root.setLevel(logging.WARNING)
def test_sets_root_logger_level(self):
self._clear_handlers()
configure_logging(level=logging.DEBUG)
root = logging.getLogger()
assert root.level == logging.DEBUG
def test_default_level_is_info(self):
self._clear_handlers()
configure_logging()
root = logging.getLogger()
assert root.level == logging.INFO
def test_handler_format_includes_name_and_level(self):
self._clear_handlers()
configure_logging()
root = logging.getLogger()
assert len(root.handlers) == 1
handler = root.handlers[0]
formatter = handler.formatter
assert "%(name)s" in formatter._fmt
assert "%(levelname)s" in formatter._fmt
assert "%(asctime)s" in formatter._fmt
def test_idempotent_second_call(self):
self._clear_handlers()
configure_logging()
initial_handlers = len(logging.getLogger().handlers)
configure_logging()
assert len(logging.getLogger().handlers) == initial_handlers
def test_module_logger_inherits_level(self):
self._clear_handlers()
configure_logging(level=logging.WARNING)
logger = logging.getLogger("some.module")
assert logger.level == logging.NOTSET
assert logger.isEnabledFor(logging.WARNING)
assert not logger.isEnabledFor(logging.INFO)