91 lines
3.2 KiB
Python
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
|