"""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