diff --git a/setup.py b/setup.py index 4a383a2ce..9aa4cdfb6 100644 --- a/setup.py +++ b/setup.py @@ -66,7 +66,7 @@ def get_static_file_paths(): setup( name='toucan_connectors', - version='0.39.2', + version='0.39.3', description='Toucan Toco Connectors', long_description=(HERE / 'README.md').read_text(encoding='utf-8'), long_description_content_type='text/markdown', diff --git a/tests/snowflake/test_snowflake.py b/tests/snowflake/test_snowflake.py index d53f83c18..19f5d2f0f 100644 --- a/tests/snowflake/test_snowflake.py +++ b/tests/snowflake/test_snowflake.py @@ -11,8 +11,8 @@ domain='test_domain', database='test_database', warehouse='test_warehouse', - query='test_query with %(foo)s', - parameters={'foo': 'bar'}, + query='test_query with %(foo)s and {{ pokemon }}', + parameters={'foo': 'bar', 'pokemon': 'pikachu'}, ) @@ -35,7 +35,7 @@ def test_snowflake(mocker): ocsp_response_cache_filename=None, ) - reasq.assert_called_once_with('test_query with %(foo)s', con=snock(), params={'foo': 'bar'}) + reasq.assert_called_once_with('test_query with bar and pikachu', con=snock()) def test_missing_cache_file(): diff --git a/toucan_connectors/snowflake/snowflake_connector.py b/toucan_connectors/snowflake/snowflake_connector.py index c301ee186..247f7945e 100644 --- a/toucan_connectors/snowflake/snowflake_connector.py +++ b/toucan_connectors/snowflake/snowflake_connector.py @@ -4,6 +4,7 @@ import snowflake.connector from pydantic import Field, SecretStr, constr +from toucan_connectors.common import nosql_apply_parameters_to_query from toucan_connectors.toucan_connector import ToucanConnector, ToucanDataSource @@ -63,8 +64,8 @@ def _retrieve_data(self, data_source: SnowflakeDataSource) -> pd.DataFrame: # https://docs.snowflake.net/manuals/sql-reference/sql/use-warehouse.html connection.cursor().execute(f'USE WAREHOUSE {data_source.warehouse}') - query_params = data_source.parameters or {} - df = pd.read_sql(data_source.query, con=connection, params=query_params) + query = nosql_apply_parameters_to_query(data_source.query, data_source.parameters) + df = pd.read_sql(query, con=connection) connection.close()