From ade417f3c0c0b9c72f4ed26d8e181b9624cd743d Mon Sep 17 00:00:00 2001 From: Marcelo Trylesinski Date: Tue, 10 May 2022 07:44:10 +0200 Subject: [PATCH] Add reason to WebSocketException --- starlette/exceptions.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/starlette/exceptions.py b/starlette/exceptions.py index 9eeab79337..6b173391ab 100644 --- a/starlette/exceptions.py +++ b/starlette/exceptions.py @@ -28,12 +28,13 @@ def __repr__(self) -> str: class WebSocketException(Exception): - def __init__(self, code: int) -> None: + def __init__(self, code: int, reason: typing.Optional[str] = None) -> None: self.code = code + self.reason = reason or "" def __repr__(self) -> str: class_name = self.__class__.__name__ - return f"{class_name}(code={self.code!r})" + return f"{class_name}(code={self.code!r}, reason={self.reason!r})" class ExceptionMiddleware: @@ -133,4 +134,4 @@ def http_exception(self, request: Request, exc: HTTPException) -> Response: async def websocket_exception( self, websocket: WebSocket, exc: WebSocketException ) -> None: - await websocket.close(code=exc.code) + await websocket.close(code=exc.code, reason=exc.reason)