From: Giovanni Barillari Date: Tue, 23 Jul 2024 10:10:14 +0000 (+0200) Subject: Revert "Add support for ASGI `pathsend` extension" (#2649) X-Git-Tag: 0.38.1~1 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=67f473d4a3a25e821ab2f30da88b54854ae41e86;p=thirdparty%2Fstarlette.git Revert "Add support for ASGI `pathsend` extension" (#2649) This reverts commit 7936e86f0a0eb7494aee8a1094b0ccda31c67a72. --- diff --git a/starlette/responses.py b/starlette/responses.py index bd66f897..1f41c23d 100644 --- a/starlette/responses.py +++ b/starlette/responses.py @@ -341,8 +341,6 @@ class FileResponse(Response): ) if scope["method"].upper() == "HEAD": await send({"type": "http.response.body", "body": b"", "more_body": False}) - elif "extensions" in scope and "http.response.pathsend" in scope["extensions"]: - await send({"type": "http.response.pathsend", "path": str(self.path)}) else: async with await anyio.open_file(self.path, mode="rb") as file: more_body = True diff --git a/tests/test_responses.py b/tests/test_responses.py index 434cc5a2..c134cbda 100644 --- a/tests/test_responses.py +++ b/tests/test_responses.py @@ -350,38 +350,6 @@ def test_file_response_with_method_warns( FileResponse(path=tmpdir, filename="example.png", method="GET") -@pytest.mark.anyio -async def test_file_response_with_pathsend(tmpdir: Path) -> None: - path = os.path.join(tmpdir, "xyz") - content = b"" * 1000 - with open(path, "wb") as file: - file.write(content) - - app = FileResponse(path=path, filename="example.png") - - async def receive() -> Message: # type: ignore[empty-body] - ... # pragma: no cover - - async def send(message: Message) -> None: - if message["type"] == "http.response.start": - assert message["status"] == status.HTTP_200_OK - headers = Headers(raw=message["headers"]) - assert headers["content-type"] == "image/png" - assert "content-length" in headers - assert "content-disposition" in headers - assert "last-modified" in headers - assert "etag" in headers - elif message["type"] == "http.response.pathsend": - assert message["path"] == str(path) - - # Since the TestClient doesn't support `pathsend`, we need to test this directly. - await app( - {"type": "http", "method": "get", "extensions": {"http.response.pathsend": {}}}, - receive, - send, - ) - - def test_set_cookie( test_client_factory: TestClientFactory, monkeypatch: pytest.MonkeyPatch ) -> None: