From 82794ba11a057a46d187d301ca01a1660db95e83 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Tue, 11 Jan 2022 13:27:10 -0800 Subject: [PATCH 1/2] remove file parameter from UploadFile --- starlette/datastructures.py | 6 +----- tests/test_datastructures.py | 12 ------------ 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/starlette/datastructures.py b/starlette/datastructures.py index 52904d51e..90268e68a 100644 --- a/starlette/datastructures.py +++ b/starlette/datastructures.py @@ -421,17 +421,13 @@ class UploadFile: def __init__( self, filename: str, - file: typing.Optional[typing.BinaryIO] = None, content_type: str = "", *, headers: "typing.Optional[Headers]" = None, ) -> None: self.filename = filename self.content_type = content_type - if file is None: - self.file = tempfile.SpooledTemporaryFile(max_size=self.spool_max_size) # type: ignore # noqa: E501 - else: - self.file = file + self.file = tempfile.SpooledTemporaryFile(max_size=self.spool_max_size) # type: ignore # noqa: E501 self.headers = headers or Headers() @property diff --git a/tests/test_datastructures.py b/tests/test_datastructures.py index b110aa8bd..be166ebb9 100644 --- a/tests/test_datastructures.py +++ b/tests/test_datastructures.py @@ -227,18 +227,6 @@ async def test_upload_file(): await big_file.close() -@pytest.mark.anyio -async def test_upload_file_file_input(): - """Test passing file/stream into the UploadFile constructor""" - stream = io.BytesIO(b"data") - file = UploadFile(filename="file", file=stream) - assert await file.read() == b"data" - await file.write(b" and more data!") - assert await file.read() == b"" - await file.seek(0) - assert await file.read() == b"data and more data!" - - def test_formdata(): stream = io.BytesIO(b"data") upload = UploadFile(filename="file", file=stream) From 041349109072fd3170b616ffc2f0d9848b56f90e Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Tue, 11 Jan 2022 13:30:02 -0800 Subject: [PATCH 2/2] fix test --- tests/test_datastructures.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/test_datastructures.py b/tests/test_datastructures.py index be166ebb9..38d67dc47 100644 --- a/tests/test_datastructures.py +++ b/tests/test_datastructures.py @@ -1,5 +1,3 @@ -import io - import pytest from starlette.datastructures import ( @@ -228,8 +226,8 @@ async def test_upload_file(): def test_formdata(): - stream = io.BytesIO(b"data") - upload = UploadFile(filename="file", file=stream) + upload = UploadFile(filename="file") + upload.file.write(b"data") form = FormData([("a", "123"), ("a", "456"), ("b", upload)]) assert "a" in form assert "A" not in form