diff --git a/aiohttp/web_fileresponse.py b/aiohttp/web_fileresponse.py index 921741e8ef5..da023660ada 100644 --- a/aiohttp/web_fileresponse.py +++ b/aiohttp/web_fileresponse.py @@ -128,7 +128,8 @@ async def _sendfile( loop = request._loop transport = request.transport - assert transport is not None + if transport is None: + raise RuntimeError("Transport is not available") try: await loop.sendfile(transport, fobj, offset, count) diff --git a/aiohttp/web_ws.py b/aiohttp/web_ws.py index 8eee7e3ad71..1919c000f70 100644 --- a/aiohttp/web_ws.py +++ b/aiohttp/web_ws.py @@ -317,7 +317,8 @@ def _pre_start(self, request: BaseRequest) -> tuple[str | None, WebSocketWriter] self.force_close() self._compress = compress transport = request._protocol.transport - assert transport is not None + if transport is None: + raise RuntimeError("Transport is not available") writer = WebSocketWriter( request._protocol, transport, diff --git a/tests/test_web_websocket.py b/tests/test_web_websocket.py index 33380d94560..6ca8caebfb8 100644 --- a/tests/test_web_websocket.py +++ b/tests/test_web_websocket.py @@ -671,3 +671,12 @@ async def test_get_extra_info( ws._writer = ws_transport assert expected_result == ws.get_extra_info(valid_key, default_value) + + +async def test_prepare_transport_not_available(make_request: _RequestMaker) -> None: + req = make_request("GET", "/") + ws = web.WebSocketResponse() + # Simulate transport being None + req._protocol.transport = None + with pytest.raises(RuntimeError, match="Transport is not available"): + await ws.prepare(req)