@@ -781,6 +781,12 @@ class TestDataProcSparkSqlOperator(unittest.TestCase):
781781 "labels" : {"airflow-version" : AIRFLOW_VERSION },
782782 "spark_sql_job" : {"query_list" : {"queries" : [query ]}, "script_variables" : variables },
783783 }
784+ other_project_job = {
785+ "reference" : {"project_id" : "other-project" , "job_id" : "{{task.task_id}}_{{ds_nodash}}_" + job_id },
786+ "placement" : {"cluster_name" : "cluster-1" },
787+ "labels" : {"airflow-version" : AIRFLOW_VERSION },
788+ "spark_sql_job" : {"query_list" : {"queries" : [query ]}, "script_variables" : variables },
789+ }
784790
785791 @mock .patch (DATAPROC_PATH .format ("DataprocHook" ))
786792 def test_deprecation_warning (self , mock_hook ):
@@ -813,6 +819,32 @@ def test_execute(self, mock_hook, mock_uuid):
813819 job_id = self .job_id , location = GCP_LOCATION , project_id = GCP_PROJECT
814820 )
815821
822+ @mock .patch (DATAPROC_PATH .format ("uuid.uuid4" ))
823+ @mock .patch (DATAPROC_PATH .format ("DataprocHook" ))
824+ def test_execute_override_project_id (self , mock_hook , mock_uuid ):
825+ mock_uuid .return_value = self .job_id
826+ mock_hook .return_value .project_id = GCP_PROJECT
827+ mock_hook .return_value .wait_for_job .return_value = None
828+ mock_hook .return_value .submit_job .return_value .reference .job_id = self .job_id
829+
830+ op = DataprocSubmitSparkSqlJobOperator (
831+ project_id = "other-project" ,
832+ task_id = TASK_ID ,
833+ region = GCP_LOCATION ,
834+ gcp_conn_id = GCP_CONN_ID ,
835+ query = self .query ,
836+ variables = self .variables ,
837+ impersonation_chain = IMPERSONATION_CHAIN ,
838+ )
839+ op .execute (context = {})
840+ mock_hook .assert_called_once_with (gcp_conn_id = GCP_CONN_ID , impersonation_chain = IMPERSONATION_CHAIN )
841+ mock_hook .return_value .submit_job .assert_called_once_with (
842+ project_id = "other-project" , job = self .other_project_job , location = GCP_LOCATION
843+ )
844+ mock_hook .return_value .wait_for_job .assert_called_once_with (
845+ job_id = self .job_id , location = GCP_LOCATION , project_id = "other-project"
846+ )
847+
816848 @mock .patch (DATAPROC_PATH .format ("uuid.uuid4" ))
817849 @mock .patch (DATAPROC_PATH .format ("DataprocHook" ))
818850 def test_builder (self , mock_hook , mock_uuid ):
0 commit comments