Skip to content

Commit 93e08d2

Browse files
committed
šŸ› Update error handling in middleware to use 'text' for error messages; adjust tests for response structure
1 parent 1f0e037 commit 93e08d2

File tree

2 files changed

+7
-12
lines changed

2 files changed

+7
-12
lines changed

ā€Žpackages/service-library/src/servicelib/aiohttp/rest_middlewares.pyā€Ž

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,24 +81,22 @@ async def _middleware_handler(request: web.Request, handler: Handler): # noqa:
8181
return await handler(request)
8282

8383
except web.HTTPError as err:
84-
# TODO: differenciate between server/client error
85-
if not err.reason:
86-
err.set_status(err.status_code, reason="Unexpected error")
8784

8885
err.content_type = MIMETYPE_APPLICATION_JSON
8986

9087
if not err.text or not is_enveloped_from_text(err.text):
91-
error = ErrorGet(
88+
error_message = err.text or err.reason or "Unexpected error"
89+
error_model = ErrorGet(
9290
errors=[
9391
ErrorItemType.from_error(err),
9492
],
9593
status=err.status,
9694
logs=[
97-
LogMessageType(message=err.reason, level="ERROR"),
95+
LogMessageType(message=error_message, level="ERROR"),
9896
],
99-
message=err.reason,
97+
message=error_message,
10098
)
101-
err.text = EnvelopeFactory(error=error).as_text()
99+
err.text = EnvelopeFactory(error=error_model).as_text()
102100

103101
raise
104102

ā€Žservices/web/server/tests/unit/with_dbs/04/wallets/payments/test_payments.pyā€Ž

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,6 @@ async def test_billing_info_missing_error(
334334
assert not data
335335
assert MSG_BILLING_DETAILS_NOT_DEFINED_ERROR in error["message"]
336336

337-
assert response.reason
338-
assert MSG_BILLING_DETAILS_NOT_DEFINED_ERROR in response.reason
339-
340337

341338
async def test_payment_not_found(
342339
latest_osparc_price: Decimal,
@@ -356,7 +353,7 @@ async def test_payment_not_found(
356353

357354
data, error = await assert_status(response, status.HTTP_404_NOT_FOUND)
358355
assert data is None
359-
error_msg = error["errors"][0]["message"]
356+
error_msg = error["message"]
360357
assert payment_id in error_msg
361358
assert ":cancel" not in error_msg
362359

@@ -391,7 +388,7 @@ async def test_payment_on_wallet_without_access(
391388
assert data is None
392389
assert error
393390

394-
error_msg = error["errors"][0]["message"]
391+
error_msg = error["message"]
395392
assert f"{wallet.wallet_id}" in error_msg
396393

397394

0 commit comments

Comments
Ā (0)