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 e7587b3369 Fix the gcp_gcs_delete_objects on empty list (#32383)
e7587b3369 is described below

commit e7587b3369af30848c3cf1c7eff9e801b1440793
Author: Peng Yu <[email protected]>
AuthorDate: Thu Jul 6 05:47:59 2023 -0400

    Fix the gcp_gcs_delete_objects on empty list (#32383)
---
 airflow/providers/google/cloud/operators/gcs.py    | 2 +-
 tests/providers/google/cloud/operators/test_gcs.py | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/airflow/providers/google/cloud/operators/gcs.py 
b/airflow/providers/google/cloud/operators/gcs.py
index 6e50cbad2d..1025a5038a 100644
--- a/airflow/providers/google/cloud/operators/gcs.py
+++ b/airflow/providers/google/cloud/operators/gcs.py
@@ -323,7 +323,7 @@ class GCSDeleteObjectsOperator(GoogleCloudBaseOperator):
             impersonation_chain=self.impersonation_chain,
         )
 
-        if self.objects:
+        if self.objects is not None:
             objects = self.objects
         else:
             objects = hook.list(bucket_name=self.bucket_name, 
prefix=self.prefix)
diff --git a/tests/providers/google/cloud/operators/test_gcs.py 
b/tests/providers/google/cloud/operators/test_gcs.py
index b048aa0c8e..4ceaa5292b 100644
--- a/tests/providers/google/cloud/operators/test_gcs.py
+++ b/tests/providers/google/cloud/operators/test_gcs.py
@@ -124,6 +124,14 @@ class TestGCSDeleteObjectsOperator:
             any_order=True,
         )
 
+    @mock.patch("airflow.providers.google.cloud.operators.gcs.GCSHook")
+    def test_delete_empty_list_of_objects(self, mock_hook):
+        operator = GCSDeleteObjectsOperator(task_id=TASK_ID, 
bucket_name=TEST_BUCKET, objects=[])
+
+        operator.execute(None)
+        mock_hook.return_value.list.assert_not_called()
+        mock_hook.return_value.delete.assert_not_called()
+
     @mock.patch("airflow.providers.google.cloud.operators.gcs.GCSHook")
     def test_delete_prefix(self, mock_hook):
         mock_hook.return_value.list.return_value = MOCK_FILES[1:4]

Reply via email to