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>
  • Loading branch information
Dreamsorcerer and hyzyla authored Sep 29, 2024
1 parent 9ab74e2 commit d9a9368
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 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,11 +23,13 @@ def __init__(
quote_fields: bool = True,
charset: Optional[str] = None,
boundary: Optional[str] = None,
*,
default_to_multipart: bool = False,
) -> None:
self._boundary = boundary
self._writer = multipart.MultipartWriter("form-data", boundary=self._boundary)
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
10 changes: 9 additions & 1 deletion tests/test_formdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,21 @@ async def write(chunk: bytes) -> None:


def test_formdata_multipart(buf: bytearray) -> None:
form = FormData()
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


@pytest.mark.parametrize("obj", (object(), None))
def test_invalid_formdata_payload_multipart(obj: object) -> None:
form = FormData()
Expand Down

0 comments on commit d9a9368

Please sign in to comment.