Skip to content

Commit d9a9368

Browse files
Add default_to_mulitpart parameter (#9335)
Co-authored-by: Yevhenii Hyzyla <hyzyla@gmail.com>
1 parent 9ab74e2 commit d9a9368

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

CHANGES/9335.feature.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added ``default_to_multipart`` parameter to ``FormData``.

aiohttp/formdata.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ def __init__(
2323
quote_fields: bool = True,
2424
charset: Optional[str] = None,
2525
boundary: Optional[str] = None,
26+
*,
27+
default_to_multipart: bool = False,
2628
) -> None:
2729
self._boundary = boundary
2830
self._writer = multipart.MultipartWriter("form-data", boundary=self._boundary)
2931
self._fields: List[Any] = []
30-
self._is_multipart = False
32+
self._is_multipart = default_to_multipart
3133
self._is_processed = False
3234
self._quote_fields = quote_fields
3335
self._charset = charset

tests/test_formdata.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,21 @@ async def write(chunk: bytes) -> None:
2525

2626

2727
def test_formdata_multipart(buf: bytearray) -> None:
28-
form = FormData()
28+
form = FormData(default_to_multipart=False)
2929
assert not form.is_multipart
3030

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

3434

35+
def test_form_data_is_multipart_param(buf: bytearray) -> None:
36+
form = FormData(default_to_multipart=True)
37+
assert form.is_multipart
38+
39+
form.add_field("test", "test")
40+
assert form.is_multipart
41+
42+
3543
@pytest.mark.parametrize("obj", (object(), None))
3644
def test_invalid_formdata_payload_multipart(obj: object) -> None:
3745
form = FormData()

0 commit comments

Comments
 (0)