38
38
TEST_PROJECT = "test-project"
39
39
DELIMITER = ".csv"
40
40
PREFIX = "TEST"
41
- MOCK_FILES = ["TEST1.csv" , "TEST2.csv" , "TEST3.csv" ]
41
+ MOCK_FILES = ["TEST1.csv" , "TEST2.csv" , "TEST3.csv" , "OTHERTEST1.csv" ]
42
42
TEST_OBJECT = "dir1/test-object"
43
43
LOCAL_FILE_PATH = "/home/airflow/gcp/test-object"
44
44
IMPERSONATION_CHAIN = ["ACCOUNT_1" , "ACCOUNT_2" , "ACCOUNT_3" ]
@@ -108,7 +108,7 @@ def test_object_create_acl(self, mock_hook):
108
108
)
109
109
110
110
111
- class TestGoogleCloudStorageDeleteOperator (unittest .TestCase ):
111
+ class TestGCSDeleteObjectsOperator (unittest .TestCase ):
112
112
@mock .patch ("airflow.providers.google.cloud.operators.gcs.GCSHook" )
113
113
def test_delete_objects (self , mock_hook ):
114
114
operator = GCSDeleteObjectsOperator (task_id = TASK_ID , bucket_name = TEST_BUCKET , objects = MOCK_FILES [0 :2 ])
@@ -125,7 +125,7 @@ def test_delete_objects(self, mock_hook):
125
125
126
126
@mock .patch ("airflow.providers.google.cloud.operators.gcs.GCSHook" )
127
127
def test_delete_prefix (self , mock_hook ):
128
- mock_hook .return_value .list .return_value = MOCK_FILES [1 :3 ]
128
+ mock_hook .return_value .list .return_value = MOCK_FILES [1 :4 ]
129
129
operator = GCSDeleteObjectsOperator (task_id = TASK_ID , bucket_name = TEST_BUCKET , prefix = PREFIX )
130
130
131
131
operator .execute (None )
@@ -138,6 +138,23 @@ def test_delete_prefix(self, mock_hook):
138
138
any_order = True ,
139
139
)
140
140
141
+ @mock .patch ("airflow.providers.google.cloud.operators.gcs.GCSHook" )
142
+ def test_delete_prefix_as_empty_string (self , mock_hook ):
143
+ mock_hook .return_value .list .return_value = MOCK_FILES [0 :4 ]
144
+ operator = GCSDeleteObjectsOperator (task_id = TASK_ID , bucket_name = TEST_BUCKET , prefix = "" )
145
+
146
+ operator .execute (None )
147
+ mock_hook .return_value .list .assert_called_once_with (bucket_name = TEST_BUCKET , prefix = "" )
148
+ mock_hook .return_value .delete .assert_has_calls (
149
+ calls = [
150
+ mock .call (bucket_name = TEST_BUCKET , object_name = MOCK_FILES [0 ]),
151
+ mock .call (bucket_name = TEST_BUCKET , object_name = MOCK_FILES [1 ]),
152
+ mock .call (bucket_name = TEST_BUCKET , object_name = MOCK_FILES [2 ]),
153
+ mock .call (bucket_name = TEST_BUCKET , object_name = MOCK_FILES [3 ]),
154
+ ],
155
+ any_order = True ,
156
+ )
157
+
141
158
142
159
class TestGoogleCloudStorageListOperator (unittest .TestCase ):
143
160
@mock .patch ("airflow.providers.google.cloud.operators.gcs.GCSHook" )
0 commit comments