]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Don't support broken dict-of-dicts case for data argument (#811)
authorTom Christie <tom@tomchristie.com>
Mon, 2 Mar 2020 10:34:04 +0000 (10:34 +0000)
committerGitHub <noreply@github.com>
Mon, 2 Mar 2020 10:34:04 +0000 (10:34 +0000)
httpx/_content_streams.py
tests/test_multipart.py

index ca48326835c73de21e4be3b712d829a45832721d..1d351677762ef490dd663fb39f88f08ed111839f 100644 (file)
@@ -291,7 +291,7 @@ class MultipartStream(ContentStream):
         self, data: dict, files: dict
     ) -> typing.Iterator[typing.Union["FileField", "DataField"]]:
         for name, value in data.items():
-            if isinstance(value, (list, dict)):
+            if isinstance(value, list):
                 for item in value:
                     yield self.DataField(name=name, value=item)
             else:
index a08ada80ce513a57dce011fa27cf995ad93aec56..3df19fe13a82a2c92909d5692ffd7979ce75d564 100644 (file)
@@ -99,8 +99,7 @@ def test_multipart_encode():
         "a": "1",
         "b": b"C",
         "c": ["11", "22", "33"],
-        "d": {"ff": ["1", b"2", "3"], "fff": ["11", b"22", "33"]},
-        "f": "",
+        "d": "",
     }
     files = {"file": ("name.txt", io.BytesIO(b"<file content>"))}
 
@@ -114,9 +113,7 @@ def test_multipart_encode():
             '--{0}\r\nContent-Disposition: form-data; name="c"\r\n\r\n11\r\n'
             '--{0}\r\nContent-Disposition: form-data; name="c"\r\n\r\n22\r\n'
             '--{0}\r\nContent-Disposition: form-data; name="c"\r\n\r\n33\r\n'
-            '--{0}\r\nContent-Disposition: form-data; name="d"\r\n\r\nff\r\n'
-            '--{0}\r\nContent-Disposition: form-data; name="d"\r\n\r\nfff\r\n'
-            '--{0}\r\nContent-Disposition: form-data; name="f"\r\n\r\n\r\n'
+            '--{0}\r\nContent-Disposition: form-data; name="d"\r\n\r\n\r\n'
             '--{0}\r\nContent-Disposition: form-data; name="file";'
             ' filename="name.txt"\r\n'
             "Content-Type: text/plain\r\n\r\n<file content>\r\n"