fix: Content-Length header always 0 for resp.data
Currently, the Content-Length header is always set to zero when resp.data was used in lieu of resp.body. This patch fixes the content_length helper so that it now checks for resp.data, in addition to resp.body and resp.stream.
This commit is contained in:
@@ -81,6 +81,8 @@ def set_content_length(resp):
|
||||
# Since body is assumed to be a byte string (str in Python 2, bytes in
|
||||
# Python 3), figure out the length using standard functions.
|
||||
content_length = len(resp.body)
|
||||
elif resp.data is not None:
|
||||
content_length = len(resp.data)
|
||||
elif resp.stream is not None:
|
||||
if resp.stream_len is not None:
|
||||
# Total stream length is known in advance (e.g., streaming a file)
|
||||
|
||||
@@ -96,6 +96,9 @@ class TestHelloWorld(testing.TestBase):
|
||||
body = self.simulate_request(self.test_route)
|
||||
resp = self.resource.resp
|
||||
|
||||
content_length = int(self.srmock.headers_dict['Content-Length'])
|
||||
self.assertEquals(content_length, len(self.resource.sample_unicode))
|
||||
|
||||
self.assertEquals(self.srmock.status, self.resource.sample_status)
|
||||
self.assertEquals(resp.status, self.resource.sample_status)
|
||||
self.assertEquals(resp.body, self.resource.sample_unicode)
|
||||
@@ -105,6 +108,9 @@ class TestHelloWorld(testing.TestBase):
|
||||
body = self.simulate_request('/bytes')
|
||||
resp = self.bytes_resource.resp
|
||||
|
||||
content_length = int(self.srmock.headers_dict['Content-Length'])
|
||||
self.assertEquals(content_length, len(self.resource.sample_utf8))
|
||||
|
||||
self.assertEquals(self.srmock.status, self.resource.sample_status)
|
||||
self.assertEquals(resp.status, self.resource.sample_status)
|
||||
self.assertEquals(resp.body, self.resource.sample_utf8)
|
||||
@@ -114,6 +120,9 @@ class TestHelloWorld(testing.TestBase):
|
||||
body = self.simulate_request('/data')
|
||||
resp = self.data_resource.resp
|
||||
|
||||
content_length = int(self.srmock.headers_dict['Content-Length'])
|
||||
self.assertEquals(content_length, len(self.resource.sample_utf8))
|
||||
|
||||
self.assertEquals(self.srmock.status, self.resource.sample_status)
|
||||
self.assertEquals(resp.status, self.resource.sample_status)
|
||||
self.assertEquals(resp.data, self.resource.sample_utf8)
|
||||
|
||||
Reference in New Issue
Block a user