Files
sientia-dataops-model-manager/tests/utils/test_logger_helper.py
2025-10-23 09:15:09 -03:00

91 lines
3.2 KiB
Python

"""Unit tests for logger_helper module with 100% coverage."""
from unittest.mock import MagicMock, patch
@patch('model_manager.utils.logger_helper.SientiaLogger')
def test_get_logger_creates_logger_instance(mock_sientia_logger):
"""Test get_logger creates a SientiaLogger instance with the given name."""
from model_manager.utils.logger_helper import get_logger
mock_logger_instance = MagicMock()
mock_logger_instance.base_logger = MagicMock()
mock_sientia_logger.return_value = mock_logger_instance
result = get_logger('test_module')
mock_sientia_logger.assert_called_once_with('test_module')
assert result is mock_logger_instance
@patch('model_manager.utils.logger_helper.SientiaLogger')
def test_get_logger_disables_propagation(mock_sientia_logger):
"""Test get_logger disables log propagation."""
from model_manager.utils.logger_helper import get_logger
mock_logger_instance = MagicMock()
mock_base_logger = MagicMock()
mock_base_logger.propagate = True
mock_logger_instance.base_logger = mock_base_logger
mock_sientia_logger.return_value = mock_logger_instance
get_logger('test_module')
assert mock_base_logger.propagate is False
@patch('model_manager.utils.logger_helper.SientiaLogger')
def test_get_logger_with_different_names(mock_sientia_logger):
"""Test get_logger works with different logger names."""
from model_manager.utils.logger_helper import get_logger
mock_logger_instance = MagicMock()
mock_logger_instance.base_logger = MagicMock()
mock_sientia_logger.return_value = mock_logger_instance
logger1 = get_logger('module1')
logger2 = get_logger('module2')
logger3 = get_logger('my.nested.module')
assert mock_sientia_logger.call_count == 3
mock_sientia_logger.assert_any_call('module1')
mock_sientia_logger.assert_any_call('module2')
mock_sientia_logger.assert_any_call('my.nested.module')
assert logger1 is mock_logger_instance
assert logger2 is mock_logger_instance
assert logger3 is mock_logger_instance
@patch('model_manager.utils.logger_helper.SientiaLogger')
def test_get_logger_with_empty_name(mock_sientia_logger):
"""Test get_logger with empty string name."""
from model_manager.utils.logger_helper import get_logger
mock_logger_instance = MagicMock()
mock_logger_instance.base_logger = MagicMock()
mock_sientia_logger.return_value = mock_logger_instance
result = get_logger('')
mock_sientia_logger.assert_called_once_with('')
assert result is mock_logger_instance
assert result.base_logger.propagate is False
@patch('model_manager.utils.logger_helper.SientiaLogger')
def test_get_logger_returns_configured_logger(mock_sientia_logger):
"""Test get_logger returns the configured logger instance."""
from model_manager.utils.logger_helper import get_logger
mock_logger_instance = MagicMock()
mock_logger_instance.base_logger = MagicMock()
mock_logger_instance.base_logger.propagate = True
mock_sientia_logger.return_value = mock_logger_instance
result = get_logger('test_logger')
# Verify the logger is returned after configuration
assert result is mock_logger_instance
# Verify propagation was disabled
assert mock_logger_instance.base_logger.propagate is False