"""Snowflake connector tests.""" from unittest.mock import MagicMock from unittest.mock import patch import pytest from src.connectors.snowflake import get_snowflake_connection mock_snowflake_config = { 'user': 'test_user', 'account': 'test_account', 'database': 'test_database', 'schema': 'test_schema', 'warehouse': 'test_warehouse', 'role': 'test_role', 'private_key': 'test_private_key', } @pytest.fixture def mock_snowflake_config_fixture(mocker): """Mock SNOWFLAKE_CONFIG.""" mocker.patch.dict('config.SNOWFLAKE_CONFIG', mock_snowflake_config) @patch('snowflake.connector.connect') def test_get_snowflake_connection_success(mock_connect, mock_snowflake_config_fixture): """Test successful Snowflake connection creation.""" mock_connection = MagicMock() mock_connect.return_value = mock_connection conn = get_snowflake_connection() mock_connect.assert_called_once_with( user=mock_snowflake_config['user'], account=mock_snowflake_config['account'], database=mock_snowflake_config['database'], schema=mock_snowflake_config['schema'], warehouse=mock_snowflake_config['warehouse'], role=mock_snowflake_config['role'], private_key=mock_snowflake_config['private_key'], ) assert conn == mock_connection @patch('snowflake.connector.connect') def test_get_snowflake_connection_failure(mock_connect, mock_snowflake_config_fixture): """Test failure in Snowflake connection creation.""" mock_connect.side_effect = Exception('Connection failed') with pytest.raises(Exception, match='Connection failed'): get_snowflake_connection()