Skip to content

Commit

Permalink
Add default_to_mulitpart parameter (#9335)
Browse files Browse the repository at this point in the history
Co-authored-by: Yevhenii Hyzyla <hyzyla@gmail.com>
(cherry picked from commit d9a9368)
  • Loading branch information
Dreamsorcerer committed Sep 29, 2024
1 parent 8785c69 commit d5a0eaf
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGES/9335.feature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added ``default_to_multipart`` parameter to ``FormData``.
4 changes: 3 additions & 1 deletion aiohttp/formdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@ def __init__(
fields: Iterable[Any] = (),
quote_fields: bool = True,
charset: Optional[str] = None,
*,
default_to_multipart: bool = False,
) -> None:
self._writer = multipart.MultipartWriter("form-data")
self._fields: List[Any] = []
self._is_multipart = False
self._is_multipart = default_to_multipart
self._is_processed = False
self._quote_fields = quote_fields
self._charset = charset
Expand Down
12 changes: 10 additions & 2 deletions tests/test_formdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,22 @@ async def write(chunk):
return writer


def test_formdata_multipart(buf, writer) -> None:
form = FormData()
def test_formdata_multipart(buf: bytearray) -> None:
form = FormData(default_to_multipart=False)
assert not form.is_multipart

form.add_field("test", b"test", filename="test.txt")
assert form.is_multipart


def test_form_data_is_multipart_param(buf: bytearray) -> None:
form = FormData(default_to_multipart=True)
assert form.is_multipart

form.add_field("test", "test")
assert form.is_multipart


def test_invalid_formdata_payload() -> None:
form = FormData()
form.add_field("test", object(), filename="test.txt")
Expand Down

0 comments on commit d5a0eaf

Please sign in to comment.