Skip to content

Commit

Permalink
Merge pull request #290 from votdev/issue_812_bucketnotempty_bp
Browse files Browse the repository at this point in the history
Deleting a not empty bucket displays a misleading error
  • Loading branch information
jecluis authored Nov 20, 2023
2 parents 13fe561 + 5247fbf commit e97244d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/backend/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,9 @@ def decode_client_error(e: ClientError) -> Tuple[int, str]:
status_code = int(code)
detail = pydash.get(e.response, "Error.Message")
else:
detail = pydash.get(e.response, "Error.Message", code)
detail = pydash.default_to(
pydash.get(e.response, "Error.Message", code), code
)
return status_code, pydash.human_case(
pydash.default_to(detail, "UnknownError")
)
Expand Down
19 changes: 19 additions & 0 deletions src/backend/tests/unit/api/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,22 @@ def test_decode_client_error_4() -> None:
(status_code, detail) = decode_client_error(error)
assert status_code == status.HTTP_403_FORBIDDEN
assert detail == "Invalid access key"


def test_decode_client_error_5() -> None:
error = ClientError(
error_response={
"Error": {
"BucketName": "e2ebucket",
"Code": "BucketNotEmpty",
"Message": None, # pyright: ignore [reportGeneralTypeIssues]
},
"ResponseMetadata": { # pyright: ignore [reportGeneralTypeIssues]
"HTTPStatusCode": 409
},
},
operation_name="TestOperation",
)
(status_code, detail) = decode_client_error(error)
assert status_code == status.HTTP_409_CONFLICT
assert detail == "Bucket not empty"

0 comments on commit e97244d

Please sign in to comment.