Skip to content

Commit ddd473b

Browse files
removing unnecessary test and adding back retry logic for non-internal errors (#1517)
1 parent 34b9414 commit ddd473b

File tree

2 files changed

+6
-25
lines changed

2 files changed

+6
-25
lines changed

awswrangler/s3/_delete.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import boto3
99

10-
from awswrangler import _utils
10+
from awswrangler import _utils, exceptions
1111
from awswrangler._threading import _get_executor
1212
from awswrangler.distributed import ray_get, ray_remote
1313
from awswrangler.s3._fs import get_botocore_valid_kwargs
@@ -50,6 +50,11 @@ def _delete_objects(
5050
deleted: List[Dict[str, Any]] = res.get("Deleted", [])
5151
for obj in deleted:
5252
_logger.debug("s3://%s/%s has been deleted.", bucket, obj.get("Key"))
53+
errors: List[Dict[str, Any]] = res.get("Errors", [])
54+
for error in errors:
55+
_logger.debug("error: %s", error)
56+
if "Code" not in error or error["Code"] != "InternalError":
57+
raise exceptions.ServiceApiError(errors)
5358

5459

5560
def delete_objects(

tests/test_s3.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -69,30 +69,6 @@ def test_list_by_last_modified_date(path):
6969
assert len(wr.s3.read_json(path, last_modified_begin=begin_utc, last_modified_end=end_utc).index) == 6
7070

7171

72-
def test_delete_internal_error(bucket):
73-
response = {
74-
"Errors": [
75-
{
76-
"Key": "foo/dt=2020-01-01 00%3A00%3A00/boo.txt",
77-
"Code": "InternalError",
78-
"Message": "We encountered an internal error. Please try again.",
79-
}
80-
]
81-
}
82-
83-
def mock_make_api_call(self, operation_name, kwarg):
84-
if operation_name == "DeleteObjects":
85-
return response
86-
return API_CALL(self, operation_name, kwarg)
87-
88-
start = time.time()
89-
with patch("botocore.client.BaseClient._make_api_call", new=mock_make_api_call):
90-
path = f"s3://{bucket}/foo/dt=2020-01-01 00:00:00/boo.txt"
91-
with pytest.raises(wr.exceptions.ServiceApiError):
92-
wr.s3.delete_objects(path=[path])
93-
assert 15 <= (time.time() - start) <= 25
94-
95-
9672
def test_delete_error(bucket):
9773
response = {"Errors": [{"Code": "AnyNonInternalError"}]}
9874

0 commit comments

Comments
 (0)