Merge pull request #1373 from ib-lundgren/unicode_fields_to_urllib

Only pass unicode multipart fieldnames to urllib3.
This commit is contained in:
Kenneth Reitz
2013-05-21 06:19:48 -07:00
2 changed files with 11 additions and 1 deletions
+1 -1
View File
@@ -105,7 +105,7 @@ class RequestEncodingMixin(object):
for v in val:
if v is not None:
new_fields.append(
(field.encode('utf-8') if isinstance(field, str) else field,
(field.decode('utf-8') if isinstance(field, bytes) else field,
v.encode('utf-8') if isinstance(v, str) else v))
for (k, v) in files:
+10
View File
@@ -342,6 +342,16 @@ class RequestsTestCase(unittest.TestCase):
files={'file': ('test_requests.py', open(__file__, 'rb'))})
self.assertEqual(r.status_code, 200)
def test_unicode_multipart_post_fieldnames(self):
r = requests.Request(method='POST',
url=httpbin('post'),
data={'stuff'.encode('utf-8'): 'elixr'},
files={'file': ('test_requests.py',
open(__file__, 'rb'))})
prep = r.prepare()
self.assertTrue(b'name="stuff"' in prep.body)
self.assertFalse(b'name="b\'stuff\'"' in prep.body)
def test_custom_content_type(self):
r = requests.post(httpbin('post'),
data={'stuff': json.dumps({'a': 123})},