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

potiuk 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 6a1c574337 Resolve deprecations in `CloudComposerEnvironmentSensor` 
tests (#40368)
6a1c574337 is described below

commit 6a1c574337871025fe9e2ccb454598a129ae9842
Author: Bora Berke Sahin <67373739+borabe...@users.noreply.github.com>
AuthorDate: Sat Jun 22 00:49:52 2024 +0300

    Resolve deprecations in `CloudComposerEnvironmentSensor` tests (#40368)
---
 tests/deprecations_ignore.yml                      |  3 --
 .../google/cloud/sensors/test_cloud_composer.py    | 54 ++++++++++++++--------
 2 files changed, 34 insertions(+), 23 deletions(-)

diff --git a/tests/deprecations_ignore.yml b/tests/deprecations_ignore.yml
index dd4bd41b76..c06e5e79ab 100644
--- a/tests/deprecations_ignore.yml
+++ b/tests/deprecations_ignore.yml
@@ -212,9 +212,6 @@
 - 
tests/providers/google/cloud/secrets/test_secret_manager.py::TestCloudSecretManagerBackend::test_connections_prefix_none_value
 - 
tests/providers/google/cloud/secrets/test_secret_manager.py::TestCloudSecretManagerBackend::test_get_conn_uri
 - 
tests/providers/google/cloud/secrets/test_secret_manager.py::TestCloudSecretManagerBackend::test_get_conn_uri_non_existent_key
-- 
tests/providers/google/cloud/sensors/test_cloud_composer.py::TestCloudComposerEnvironmentSensor::test_cloud_composer_existence_sensor_async
-- 
tests/providers/google/cloud/sensors/test_cloud_composer.py::TestCloudComposerEnvironmentSensor::test_cloud_composer_existence_sensor_async_execute_complete
-- 
tests/providers/google/cloud/sensors/test_cloud_composer.py::TestCloudComposerEnvironmentSensor::test_cloud_composer_existence_sensor_async_execute_failure
 - 
tests/providers/google/cloud/sensors/test_gcs.py::TestTsFunction::test_should_support_cron
 - 
tests/providers/google/cloud/sensors/test_gcs.py::TestTsFunction::test_should_support_datetime
 - 
tests/providers/google/cloud/transfers/test_azure_fileshare_to_gcs.py::TestAzureFileShareToGCSOperator::test_execute
diff --git a/tests/providers/google/cloud/sensors/test_cloud_composer.py 
b/tests/providers/google/cloud/sensors/test_cloud_composer.py
index c22eb90fde..d1a8768daf 100644
--- a/tests/providers/google/cloud/sensors/test_cloud_composer.py
+++ b/tests/providers/google/cloud/sensors/test_cloud_composer.py
@@ -23,7 +23,12 @@ from unittest import mock
 
 import pytest
 
-from airflow.exceptions import AirflowException, AirflowSkipException, 
TaskDeferred
+from airflow.exceptions import (
+    AirflowException,
+    AirflowProviderDeprecationWarning,
+    AirflowSkipException,
+    TaskDeferred,
+)
 from airflow.providers.google.cloud.sensors.cloud_composer import (
     CloudComposerDAGRunSensor,
     CloudComposerEnvironmentSensor,
@@ -53,6 +58,12 @@ TEST_EXEC_RESULT = lambda state: {
     "output_end": True,
     "exit_info": {"exit_code": 0, "error": ""},
 }
+DEPRECATION_MESSAGE = (
+    "The `CloudComposerEnvironmentSensor` operator is deprecated. "
+    "You can achieve the same functionality "
+    "by using operators in deferrable or non-deferrable mode, since every 
operator for Cloud "
+    "Composer will wait for the operation to complete."
+)
 
 
 class TestCloudComposerEnvironmentSensor:
@@ -62,12 +73,13 @@ class TestCloudComposerEnvironmentSensor:
         Asserts that a task is deferred and a CloudComposerExecutionTrigger 
will be fired
         when the CloudComposerEnvironmentSensor is executed.
         """
-        task = CloudComposerEnvironmentSensor(
-            task_id="task_id",
-            project_id=TEST_PROJECT_ID,
-            region=TEST_REGION,
-            operation_name=TEST_OPERATION_NAME,
-        )
+        with pytest.warns(AirflowProviderDeprecationWarning, 
match=DEPRECATION_MESSAGE):
+            task = CloudComposerEnvironmentSensor(
+                task_id="task_id",
+                project_id=TEST_PROJECT_ID,
+                region=TEST_REGION,
+                operation_name=TEST_OPERATION_NAME,
+            )
         with pytest.raises(TaskDeferred) as exc:
             task.execute(context={})
         assert isinstance(
@@ -79,24 +91,26 @@ class TestCloudComposerEnvironmentSensor:
     )
     def test_cloud_composer_existence_sensor_async_execute_failure(self, 
soft_fail, expected_exception):
         """Tests that an expected exception is raised in case of error 
event."""
-        task = CloudComposerEnvironmentSensor(
-            task_id="task_id",
-            project_id=TEST_PROJECT_ID,
-            region=TEST_REGION,
-            operation_name=TEST_OPERATION_NAME,
-            soft_fail=soft_fail,
-        )
+        with pytest.warns(AirflowProviderDeprecationWarning, 
match=DEPRECATION_MESSAGE):
+            task = CloudComposerEnvironmentSensor(
+                task_id="task_id",
+                project_id=TEST_PROJECT_ID,
+                region=TEST_REGION,
+                operation_name=TEST_OPERATION_NAME,
+                soft_fail=soft_fail,
+            )
         with pytest.raises(expected_exception, match="No event received in 
trigger callback"):
             task.execute_complete(context={}, event=None)
 
     def test_cloud_composer_existence_sensor_async_execute_complete(self):
         """Asserts that logging occurs as expected"""
-        task = CloudComposerEnvironmentSensor(
-            task_id="task_id",
-            project_id=TEST_PROJECT_ID,
-            region=TEST_REGION,
-            operation_name=TEST_OPERATION_NAME,
-        )
+        with pytest.warns(AirflowProviderDeprecationWarning, 
match=DEPRECATION_MESSAGE):
+            task = CloudComposerEnvironmentSensor(
+                task_id="task_id",
+                project_id=TEST_PROJECT_ID,
+                region=TEST_REGION,
+                operation_name=TEST_OPERATION_NAME,
+            )
         with mock.patch.object(task.log, "info"):
             task.execute_complete(
                 context={}, event={"operation_done": True, "operation_name": 
TEST_OPERATION_NAME}

Reply via email to