Skip to content

Commit 67e1ce6

Browse files
authored
Resolve snowflake deprecations in tests (#40398)
1 parent 906bc96 commit 67e1ce6

File tree

3 files changed

+28
-26
lines changed

3 files changed

+28
-26
lines changed

tests/deprecations_ignore.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,4 @@
235235
- tests/providers/mysql/operators/test_mysql.py::TestMySql::test_mysql_operator_test_multi
236236
- tests/providers/mysql/operators/test_mysql.py::TestMySql::test_overwrite_schema
237237
- tests/providers/mysql/operators/test_mysql.py::test_execute_openlineage_events
238-
- tests/providers/snowflake/operators/test_snowflake.py::TestSnowflakeOperator::test_snowflake_operator
239-
- tests/providers/snowflake/operators/test_snowflake.py::TestSnowflakeOperatorForParams::test_overwrite_params
240-
- tests/providers/snowflake/operators/test_snowflake_sql.py::test_exec_success
241-
- tests/providers/snowflake/operators/test_snowflake_sql.py::test_execute_openlineage_events
242238
- tests/providers/trino/operators/test_trino.py::test_execute_openlineage_events

tests/providers/snowflake/operators/test_snowflake.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
from airflow.models.dag import DAG
2727
from airflow.models.dagrun import DagRun
2828
from airflow.models.taskinstance import TaskInstance
29+
from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
2930
from airflow.providers.snowflake.operators.snowflake import (
3031
SnowflakeCheckOperator,
3132
SnowflakeIntervalCheckOperator,
32-
SnowflakeOperator,
3333
SnowflakeSqlApiOperator,
3434
SnowflakeValueCheckOperator,
3535
)
@@ -68,7 +68,9 @@ def test_snowflake_operator(self, mock_get_db_hook):
6868
dummy VARCHAR(50)
6969
);
7070
"""
71-
operator = SnowflakeOperator(task_id="basic_snowflake", sql=sql, dag=self.dag, do_xcom_push=False)
71+
operator = SQLExecuteQueryOperator(
72+
task_id="basic_snowflake", sql=sql, dag=self.dag, do_xcom_push=False, conn_id="snowflake_default"
73+
)
7274
# do_xcom_push=False because otherwise the XCom test will fail due to the mocking (it actually works)
7375
operator.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE, ignore_ti_state=True)
7476

@@ -77,16 +79,18 @@ class TestSnowflakeOperatorForParams:
7779
@mock.patch("airflow.providers.common.sql.operators.sql.BaseSQLOperator.__init__")
7880
def test_overwrite_params(self, mock_base_op):
7981
sql = "Select * from test_table"
80-
SnowflakeOperator(
82+
SQLExecuteQueryOperator(
8183
sql=sql,
8284
task_id="snowflake_params_check",
83-
snowflake_conn_id="snowflake_default",
84-
warehouse="test_warehouse",
85-
database="test_database",
86-
role="test_role",
87-
schema="test_schema",
88-
authenticator="oath",
89-
session_parameters={"QUERY_TAG": "test_tag"},
85+
conn_id="snowflake_default",
86+
hook_params={
87+
"warehouse": "test_warehouse",
88+
"database": "test_database",
89+
"role": "test_role",
90+
"schema": "test_schema",
91+
"authenticator": "oath",
92+
"session_parameters": {"QUERY_TAG": "test_tag"},
93+
},
9094
)
9195
mock_base_op.assert_called_once_with(
9296
conn_id="snowflake_default",

tests/providers/snowflake/operators/test_snowflake_sql.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import pytest
2424
from _pytest.outcomes import importorskip
2525

26+
from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
27+
2628
databricks = importorskip("databricks")
2729

2830
try:
@@ -45,7 +47,6 @@ def Row(*args, **kwargs):
4547
from airflow.models.connection import Connection
4648
from airflow.providers.common.sql.hooks.sql import fetch_all_handler
4749
from airflow.providers.snowflake.hooks.snowflake import SnowflakeHook
48-
from airflow.providers.snowflake.operators.snowflake import SnowflakeOperator
4950

5051
DATE = "2017-04-20"
5152
TASK_ID = "databricks-sql-operator"
@@ -61,7 +62,7 @@ def Row(*args, **kwargs):
6162
True,
6263
[Row(id=1, value="value1"), Row(id=2, value="value2")],
6364
[[("id",), ("value",)]],
64-
([{"id": 1, "value": "value1"}, {"id": 2, "value": "value2"}]),
65+
([Row(id=1, value="value1"), Row(id=2, value="value2")]),
6566
id="Scalar: Single SQL statement, return_last, split statement",
6667
),
6768
pytest.param(
@@ -70,7 +71,7 @@ def Row(*args, **kwargs):
7071
True,
7172
[Row(id=1, value="value1"), Row(id=2, value="value2")],
7273
[[("id",), ("value",)]],
73-
([{"id": 1, "value": "value1"}, {"id": 2, "value": "value2"}]),
74+
([Row(id=1, value="value1"), Row(id=2, value="value2")]),
7475
id="Scalar: Multiple SQL statements, return_last, split statement",
7576
),
7677
pytest.param(
@@ -79,7 +80,7 @@ def Row(*args, **kwargs):
7980
False,
8081
[Row(id=1, value="value1"), Row(id=2, value="value2")],
8182
[[("id",), ("value",)]],
82-
([{"id": 1, "value": "value1"}, {"id": 2, "value": "value2"}]),
83+
([Row(id=1, value="value1"), Row(id=2, value="value2")]),
8384
id="Scalar: Single SQL statements, no return_last (doesn't matter), no split statement",
8485
),
8586
pytest.param(
@@ -88,7 +89,7 @@ def Row(*args, **kwargs):
8889
False,
8990
[Row(id=1, value="value1"), Row(id=2, value="value2")],
9091
[[("id",), ("value",)]],
91-
([{"id": 1, "value": "value1"}, {"id": 2, "value": "value2"}]),
92+
([Row(id=1, value="value1"), Row(id=2, value="value2")]),
9293
id="Scalar: Single SQL statements, return_last (doesn't matter), no split statement",
9394
),
9495
pytest.param(
@@ -97,7 +98,7 @@ def Row(*args, **kwargs):
9798
False,
9899
[[Row(id=1, value="value1"), Row(id=2, value="value2")]],
99100
[[("id",), ("value",)]],
100-
[([{"id": 1, "value": "value1"}, {"id": 2, "value": "value2"}])],
101+
[([Row(id=1, value="value1"), Row(id=2, value="value2")])],
101102
id="Non-Scalar: Single SQL statements in list, no return_last, no split statement",
102103
),
103104
pytest.param(
@@ -110,8 +111,8 @@ def Row(*args, **kwargs):
110111
],
111112
[[("id",), ("value",)], [("id2",), ("value2",)]],
112113
[
113-
([{"id": 1, "value": "value1"}, {"id": 2, "value": "value2"}]),
114-
([{"id2": 1, "value2": "value1"}, {"id2": 2, "value2": "value2"}]),
114+
([Row(id=1, value="value1"), Row(id=2, value="value2")]),
115+
([Row(id2=1, value2="value1"), Row(id2=2, value2="value2")]),
115116
],
116117
id="Non-Scalar: Multiple SQL statements in list, no return_last (no matter), no split statement",
117118
),
@@ -125,8 +126,8 @@ def Row(*args, **kwargs):
125126
],
126127
[[("id",), ("value",)], [("id2",), ("value2",)]],
127128
[
128-
([{"id": 1, "value": "value1"}, {"id": 2, "value": "value2"}]),
129-
([{"id2": 1, "value2": "value1"}, {"id2": 2, "value2": "value2"}]),
129+
([Row(id=1, value="value1"), Row(id=2, value="value2")]),
130+
([Row(id2=1, value2="value1"), Row(id2=2, value2="value2")]),
130131
],
131132
id="Non-Scalar: Multiple SQL statements in list, return_last (no matter), no split statement",
132133
),
@@ -137,12 +138,13 @@ def test_exec_success(sql, return_last, split_statement, hook_results, hook_desc
137138
Test the execute function in case where SQL query was successful.
138139
"""
139140
with patch("airflow.providers.common.sql.operators.sql.BaseSQLOperator.get_db_hook") as get_db_hook_mock:
140-
op = SnowflakeOperator(
141+
op = SQLExecuteQueryOperator(
141142
task_id=TASK_ID,
142143
sql=sql,
143144
do_xcom_push=True,
144145
return_last=return_last,
145146
split_statements=split_statement,
147+
conn_id="snowflake_default",
146148
)
147149
dbapi_hook = MagicMock()
148150
get_db_hook_mock.return_value = dbapi_hook
@@ -177,7 +179,7 @@ class SnowflakeHookForTests(SnowflakeHook):
177179

178180
dbapi_hook = SnowflakeHookForTests()
179181

180-
class SnowflakeOperatorForTest(SnowflakeOperator):
182+
class SnowflakeOperatorForTest(SQLExecuteQueryOperator):
181183
def get_db_hook(self):
182184
return dbapi_hook
183185

0 commit comments

Comments
 (0)