2025-01-05 14:41:07 +01:00
|
|
|
"""Test Module for logging Module."""
|
2024-11-10 23:49:10 +01:00
|
|
|
|
|
|
|
import logging
|
|
|
|
from logging.handlers import RotatingFileHandler
|
2025-02-12 21:35:51 +01:00
|
|
|
from pathlib import Path
|
2024-11-10 23:49:10 +01:00
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
2025-01-05 14:41:07 +01:00
|
|
|
from akkudoktoreos.core.logging import get_logger
|
2024-11-10 23:49:10 +01:00
|
|
|
|
|
|
|
# -----------------------------
|
|
|
|
# get_logger
|
|
|
|
# -----------------------------
|
|
|
|
|
|
|
|
|
2025-02-12 21:35:51 +01:00
|
|
|
def test_get_logger_console_logging():
|
2024-11-10 23:49:10 +01:00
|
|
|
"""Test logger creation with console logging."""
|
|
|
|
logger = get_logger("test_logger", logging_level="DEBUG")
|
|
|
|
|
|
|
|
# Check logger name
|
|
|
|
assert logger.name == "test_logger"
|
|
|
|
|
|
|
|
# Check logger level
|
|
|
|
assert logger.level == logging.DEBUG
|
|
|
|
|
|
|
|
# Check console handler is present
|
|
|
|
assert len(logger.handlers) == 1
|
|
|
|
assert isinstance(logger.handlers[0], logging.StreamHandler)
|
|
|
|
|
|
|
|
|
2025-02-12 21:35:51 +01:00
|
|
|
def test_get_logger_file_logging(tmpdir):
|
2024-11-10 23:49:10 +01:00
|
|
|
"""Test logger creation with file logging."""
|
2025-02-12 21:35:51 +01:00
|
|
|
log_file = Path(tmpdir).joinpath("test.log")
|
|
|
|
logger = get_logger("test_logger", log_file=str(log_file), logging_level="WARNING")
|
2024-11-10 23:49:10 +01:00
|
|
|
|
|
|
|
# Check logger name
|
|
|
|
assert logger.name == "test_logger"
|
|
|
|
|
|
|
|
# Check logger level
|
|
|
|
assert logger.level == logging.WARNING
|
|
|
|
|
|
|
|
# Check console handler is present
|
|
|
|
assert len(logger.handlers) == 2 # One for console and one for file
|
|
|
|
assert isinstance(logger.handlers[0], logging.StreamHandler)
|
|
|
|
assert isinstance(logger.handlers[1], RotatingFileHandler)
|
|
|
|
|
|
|
|
# Check file existence
|
2025-02-12 21:35:51 +01:00
|
|
|
assert log_file.exists()
|
2024-11-10 23:49:10 +01:00
|
|
|
|
|
|
|
|
2025-02-12 21:35:51 +01:00
|
|
|
def test_get_logger_no_file_logging():
|
2024-11-10 23:49:10 +01:00
|
|
|
"""Test logger creation without file logging."""
|
|
|
|
logger = get_logger("test_logger")
|
|
|
|
|
|
|
|
# Check logger name
|
|
|
|
assert logger.name == "test_logger"
|
|
|
|
|
|
|
|
# Check logger level
|
|
|
|
assert logger.level == logging.INFO
|
|
|
|
|
|
|
|
# Check no file handler is present
|
|
|
|
assert len(logger.handlers) >= 1 # First is console handler (maybe be pytest handler)
|
|
|
|
assert isinstance(logger.handlers[0], logging.StreamHandler)
|
|
|
|
|
|
|
|
|
2025-02-12 21:35:51 +01:00
|
|
|
def test_get_logger_with_invalid_level():
|
2024-11-10 23:49:10 +01:00
|
|
|
"""Test logger creation with an invalid logging level."""
|
2025-01-05 14:41:07 +01:00
|
|
|
with pytest.raises(ValueError, match="Unknown loggin level: INVALID"):
|
|
|
|
logger = get_logger("test_logger", logging_level="INVALID")
|