Fixed issue #747

Bound the name builtin_str to __builtin__.str and added another check
for this class since the str class was rebound to unicode in compat.
This issue was only for Python 2 as well.
This commit is contained in:
Marcus McCurdy
2012-08-03 23:13:17 -04:00
parent 12328d6e58
commit 493ea93469
2 changed files with 5 additions and 3 deletions
+3 -1
View File
@@ -34,6 +34,8 @@ from .compat import (
cookielib, urlparse, urlunparse, urljoin, urlsplit, urlencode, str, bytes,
StringIO, is_py2, chardet, json)
from __builtin__ import str as builtin_str
REDIRECT_STATI = (codes.moved, codes.found, codes.other, codes.temporary_moved)
CONTENT_CHUNK_SIZE = 10 * 1024
@@ -493,7 +495,7 @@ class Request(object):
if self.data:
body = self._encode_params(self.data)
if isinstance(self.data, str) or hasattr(self.data, 'read'):
if isinstance(self.data, str) or isinstance(self.data, builtin_str) or hasattr(self.data, 'read'):
content_type = None
else:
content_type = 'application/x-www-form-urlencoded'
+2 -2
View File
@@ -974,10 +974,10 @@ class RequestsTestSuite(TestSetup, TestBaseMixin, unittest.TestCase):
self.assertEqual(t.get('files'), files)
def test_str_data_content_type(self):
data = "test string data"
data = 'test string data'
r = post(httpbin('post'), data=data)
t = json.loads(r.text)
self.assertEqual(t.get('headers').get('Content-Type'), 'text/plain')
self.assertEqual(t.get('headers').get('Content-Type'), '')
if __name__ == '__main__':