From 493ea934699d10f5e7fae174403c59fd511b605b Mon Sep 17 00:00:00 2001 From: Marcus McCurdy Date: Fri, 3 Aug 2012 23:13:17 -0400 Subject: [PATCH] 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. --- requests/models.py | 4 +++- tests/test_requests.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/requests/models.py b/requests/models.py index 49007372..970acf8a 100644 --- a/requests/models.py +++ b/requests/models.py @@ -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' diff --git a/tests/test_requests.py b/tests/test_requests.py index 10da6f7e..9204b15d 100755 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -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__':