Skip to content

Commit 19441f1

Browse files
committed
šŸ› Update error handling to use 'text' instead of 'reason' for HTTP responses in error handlers
1 parent dc0b74d commit 19441f1

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ async def base_long_running_error_handler(request, handler):
1818
return await handler(request)
1919
except (TaskNotFoundError, TaskNotCompletedError) as exc:
2020
_logger.debug("", exc_info=True)
21-
error_fields = dict(code=exc.code, message=f"{exc}")
21+
error_fields = {"code": exc.code, "message": f"{exc}"}
2222
raise web.HTTPNotFound(
23-
reason=f"{json_dumps(error_fields)}",
23+
text=f"{json_dumps(error_fields)}",
2424
) from exc
2525
except TaskCancelledError as exc:
2626
# NOTE: only use-case would be accessing an already cancelled task
2727
# which should not happen, so we return a conflict
2828
_logger.debug("", exc_info=True)
29-
error_fields = dict(code=exc.code, message=f"{exc}")
30-
raise web.HTTPConflict(reason=f"{json_dumps(error_fields)}") from exc
29+
error_fields = {"code": exc.code, "message": f"{exc}"}
30+
raise web.HTTPConflict(text=f"{json_dumps(error_fields)}") from exc

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ async def middleware_handler(request: web.Request, handler: Handler):
101101
log_exception = None
102102
raise resp from exc
103103
except asyncio.CancelledError as exc:
104-
resp = web.HTTPInternalServerError(reason=f"{exc}")
104+
resp = web.HTTPInternalServerError(text=f"{exc}")
105105
log_exception = exc
106106
raise resp from exc
107107
except Exception as exc: # pylint: disable=broad-except
108-
resp = web.HTTPInternalServerError(reason=f"{exc}")
108+
resp = web.HTTPInternalServerError(text=f"{exc}")
109109
resp.__cause__ = exc
110110
log_exception = exc
111111
raise resp from exc

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ async def parse_request_body_as(
209209
try:
210210
body = await request.json()
211211
except json.decoder.JSONDecodeError as err:
212-
raise web.HTTPBadRequest(reason=f"Invalid json in body: {err}") from err
212+
raise web.HTTPBadRequest(text=f"Invalid json in body: {err}") from err
213213

214214
if hasattr(model_schema_cls, "model_validate"):
215215
# NOTE: model_schema can be 'list[T]' or 'dict[T]' which raise TypeError

ā€Žpackages/service-library/tests/aiohttp/test_rest_middlewares.pyā€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ async def raise_error(_request: web.Request):
112112

113113
@staticmethod
114114
async def raise_error_with_reason(_request: web.Request):
115-
raise web.HTTPNotFound(reason="I did not find it")
115+
raise web.HTTPNotFound(reason="A short phrase")
116116

117117
@staticmethod
118118
async def raise_success(_request: web.Request):

0 commit comments

Comments
Ā (0)