Use builtin_str for all auto-set header values.

This commit is contained in:
Cory Benfield
2013-10-18 18:34:29 +01:00
parent e91ee0e246
commit 8a42d5fb41
2 changed files with 11 additions and 3 deletions
+3 -3
View File
@@ -407,7 +407,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
raise NotImplementedError('Streamed bodies and files are mutually exclusive.')
if length is not None:
self.headers['Content-Length'] = str(length)
self.headers['Content-Length'] = builtin_str(length)
else:
self.headers['Transfer-Encoding'] = 'chunked'
else:
@@ -433,12 +433,12 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
def prepare_content_length(self, body):
if hasattr(body, 'seek') and hasattr(body, 'tell'):
body.seek(0, 2)
self.headers['Content-Length'] = str(body.tell())
self.headers['Content-Length'] = builtin_str(body.tell())
body.seek(0, 0)
elif body is not None:
l = super_len(body)
if l:
self.headers['Content-Length'] = str(l)
self.headers['Content-Length'] = builtin_str(l)
elif self.method not in ('GET', 'HEAD'):
self.headers['Content-Length'] = '0'
+8
View File
@@ -684,6 +684,14 @@ class RequestsTestCase(unittest.TestCase):
self.assertTrue('multipart/form-data' in p.headers['Content-Type'])
def test_autoset_header_values_are_native(self):
data = 'this is a string'
length = '16'
req = requests.Request('POST', httpbin('post'), data=data)
p = req.prepare()
self.assertEqual(p.headers['Content-Length'], length)
class TestContentEncodingDetection(unittest.TestCase):