This is an automated email from the ASF dual-hosted git repository.

taragolis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new caee896403 Consolidate hook management in AnalyticDBSparkSensor 
(#34435)
caee896403 is described below

commit caee89640350ac8aaf46e3a8a948981c58392dcf
Author: Hussein Awala <[email protected]>
AuthorDate: Mon Sep 18 21:13:48 2023 +0200

    Consolidate hook management in AnalyticDBSparkSensor (#34435)
    
    * Consolidate hook management in AnalyticDBSparkSensor
    
    * use AirflowProviderDeprecationWarning
---
 .../providers/alibaba/cloud/sensors/analyticdb_spark.py | 17 ++++++++++-------
 .../alibaba/cloud/sensors/test_analyticdb_spark.py      |  6 +++---
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/airflow/providers/alibaba/cloud/sensors/analyticdb_spark.py 
b/airflow/providers/alibaba/cloud/sensors/analyticdb_spark.py
index fb6a962d43..02bab417b6 100644
--- a/airflow/providers/alibaba/cloud/sensors/analyticdb_spark.py
+++ b/airflow/providers/alibaba/cloud/sensors/analyticdb_spark.py
@@ -20,6 +20,9 @@ from __future__ import annotations
 from functools import cached_property
 from typing import TYPE_CHECKING, Any, Sequence
 
+from deprecated.classic import deprecated
+
+from airflow.exceptions import AirflowProviderDeprecationWarning
 from airflow.providers.alibaba.cloud.hooks.analyticdb_spark import 
AnalyticDBSparkHook, AppState
 from airflow.sensors.base import BaseSensorOperator
 
@@ -50,19 +53,19 @@ class AnalyticDBSparkSensor(BaseSensorOperator):
         self.app_id = app_id
         self._region = region
         self._adb_spark_conn_id = adb_spark_conn_id
-        self._adb_spark_hook: AnalyticDBSparkHook | None = None
 
     @cached_property
+    def hook(self) -> AnalyticDBSparkHook:
+        """Get valid hook."""
+        return AnalyticDBSparkHook(adb_spark_conn_id=self._adb_spark_conn_id, 
region=self._region)
+
+    @deprecated(reason="use `hook` property instead.", 
category=AirflowProviderDeprecationWarning)
     def get_hook(self) -> AnalyticDBSparkHook:
         """Get valid hook."""
-        if self._adb_spark_hook is None or not 
isinstance(self._adb_spark_hook, AnalyticDBSparkHook):
-            self._adb_spark_hook = AnalyticDBSparkHook(
-                adb_spark_conn_id=self._adb_spark_conn_id, region=self._region
-            )
-        return self._adb_spark_hook
+        return self.hook
 
     def poke(self, context: Context) -> bool:
         app_id = self.app_id
 
-        state = self.get_hook.get_spark_state(app_id)
+        state = self.hook.get_spark_state(app_id)
         return AppState(state) in AnalyticDBSparkHook.TERMINAL_STATES
diff --git a/tests/providers/alibaba/cloud/sensors/test_analyticdb_spark.py 
b/tests/providers/alibaba/cloud/sensors/test_analyticdb_spark.py
index 8cef517500..86c6719063 100644
--- a/tests/providers/alibaba/cloud/sensors/test_analyticdb_spark.py
+++ b/tests/providers/alibaba/cloud/sensors/test_analyticdb_spark.py
@@ -42,10 +42,10 @@ class TestAnalyticDBSparkSensor:
     @mock.patch(ADB_SPARK_SENSOR_STRING.format("AnalyticDBSparkHook"))
     def test_get_hook(self, mock_service):
         """Test get_hook function works as expected."""
-        self.sensor.get_hook()
+        self.sensor.hook
         
mock_service.assert_called_once_with(adb_spark_conn_id=MOCK_ADB_SPARK_CONN_ID, 
region=MOCK_REGION)
 
-    
@mock.patch(ADB_SPARK_SENSOR_STRING.format("AnalyticDBSparkSensor.get_hook"))
+    @mock.patch(ADB_SPARK_SENSOR_STRING.format("AnalyticDBSparkSensor.hook"))
     def test_poke_terminal_state(self, mock_service):
         """Test poke_terminal_state works as expected with COMPLETED 
application."""
         # Given
@@ -58,7 +58,7 @@ class TestAnalyticDBSparkSensor:
         assert res is True
         mock_service.get_spark_state.assert_called_once_with(MOCK_ADB_SPARK_ID)
 
-    
@mock.patch(ADB_SPARK_SENSOR_STRING.format("AnalyticDBSparkSensor.get_hook"))
+    @mock.patch(ADB_SPARK_SENSOR_STRING.format("AnalyticDBSparkSensor.hook"))
     def test_poke_non_terminal_state(self, mock_service):
         """Test poke_terminal_state works as expected with RUNNING 
application."""
         # Given

Reply via email to