Merge pull request #1024 from etscrivner/master

Fix HTTP method encoding problem with attached files
This commit is contained in:
Kenneth Reitz
2012-12-17 12:53:22 -08:00
2 changed files with 13 additions and 9 deletions
+4 -8
View File
@@ -28,7 +28,7 @@ from .utils import (
guess_json_utf)
from .compat import (
cookielib, urlparse, urlunparse, urljoin, urlsplit, urlencode, str, bytes,
StringIO, is_py2, chardet, json, builtin_str, urldefrag, basestring)
StringIO, is_py2, is_py3, chardet, json, builtin_str, urldefrag, basestring)
REDIRECT_STATI = (codes.moved, codes.found, codes.other, codes.temporary_moved)
CONTENT_CHUNK_SIZE = 10 * 1024
@@ -222,13 +222,9 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
def prepare_method(self, method):
"""Prepares the given HTTP method."""
try:
method = unicode(method)
except NameError:
# We're on Python 3.
method = str(method)
self.method = method.upper()
self.method = method
if self.method is not None:
self.method = self.method.upper()
def prepare_url(self, url, params):
"""Prepares the given HTTP URL."""
+9 -1
View File
@@ -3,6 +3,7 @@
"""Tests for Requests."""
import json
import os
import unittest
@@ -243,7 +244,14 @@ class RequestsTestCase(unittest.TestCase):
self.assertEqual(r.status_code, 200)
self.assertEqual(r.url, httpbin('get?test=foo&test=baz'))
def test_different_encodings_dont_break_post(self):
r = requests.post(httpbin('post'),
data={'stuff': json.dumps({'a': 123})},
params={'blah': 'asdf1234'},
files={'file': ('test_requests.py', open(__file__, 'rb'))})
self.assertEqual(r.status_code, 200)
if __name__ == '__main__':
unittest.main()
unittest.main()