pydase/tests/utils/test_logging.py

89 lines
3.1 KiB
Python

import logging
import pytest
from pydase.utils.logging import configure_logging_with_pydase_formatter
def test_log_error(caplog: pytest.LogCaptureFixture) -> None:
logger = logging.getLogger("pydase")
logger.setLevel(logging.ERROR)
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
# Check the log records as well as the level.
assert "This is a debug message" not in caplog.text
assert "This is an info message" not in caplog.text
assert "This is a warning message" not in caplog.text
assert "This is an error message" in caplog.text
assert any(record.levelname == "ERROR" for record in caplog.records)
def test_log_warning(caplog: pytest.LogCaptureFixture) -> None:
logger = logging.getLogger("pydase")
logger.setLevel(logging.WARNING)
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
# Check the log records as well as the level.
assert "This is a debug message" not in caplog.text
assert "This is an info message" not in caplog.text
assert "This is a warning message" in caplog.text
assert "This is an error message" in caplog.text
assert any(record.levelname == "ERROR" for record in caplog.records)
def test_log_debug(caplog: pytest.LogCaptureFixture) -> None:
logger = logging.getLogger("pydase")
logger.setLevel(logging.DEBUG)
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
# Now, check that the message is in the log records.
assert "This is a debug message" in caplog.text
assert "This is an info message" in caplog.text
assert "This is a warning message" in caplog.text
assert "This is an error message" in caplog.text
def test_log_info(caplog: pytest.LogCaptureFixture) -> None:
logger = logging.getLogger("pydase")
logger.setLevel(logging.INFO)
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
# Now, check that the message is in the log records.
assert "This is a debug message" not in caplog.text
assert "This is an info message" in caplog.text
assert "This is a warning message" in caplog.text
assert "This is an error message" in caplog.text
def test_before_configuring_root_logger(caplog: pytest.LogCaptureFixture) -> None:
logger = logging.getLogger(__name__)
logger.info("Hello world")
assert "Hello world" not in caplog.text
def test_configure_root_logger(caplog: pytest.LogCaptureFixture) -> None:
configure_logging_with_pydase_formatter()
logger = logging.getLogger(__name__)
logger.info("Hello world")
assert (
"INFO tests.utils.test_logging:test_logging.py:83 Hello world"
in caplog.text
)