2323import pytest
2424from _pytest .outcomes import importorskip
2525
26+ from airflow .providers .common .sql .operators .sql import SQLExecuteQueryOperator
27+
2628databricks = importorskip ("databricks" )
2729
2830try :
@@ -45,7 +47,6 @@ def Row(*args, **kwargs):
4547from airflow .models .connection import Connection
4648from airflow .providers .common .sql .hooks .sql import fetch_all_handler
4749from airflow .providers .snowflake .hooks .snowflake import SnowflakeHook
48- from airflow .providers .snowflake .operators .snowflake import SnowflakeOperator
4950
5051DATE = "2017-04-20"
5152TASK_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