Fix test_request_too_large_no_content_length failure
Webob >=1.7.0 change its way to check if body is readable [1],
The is_body_readable() method returns False now. request.content_length
will be set when set request.body automatically, and if
request.context_length is None request.body will return returns b''.[3]
So just set request.body in test.
[1] 0e6fcbfbc5
[2] https://github.com/Pylons/webob/blame/master/webob/request.py#L699
[3] https://github.com/Pylons/webob/blame/master/webob/request.py#L692
Closes-Bug: #1679658
Change-Id: I4e0932dd8664d96b2733c5d3b1fa846af0c7d132
This commit is contained in:
parent
2dc2cf3c31
commit
fed2925735
|
@ -89,7 +89,7 @@ class RequestBodySizeLimiter(base.ConfigurableMiddleware):
|
|||
req.content_length > max_size):
|
||||
msg = _("Request is too large.")
|
||||
raise webob.exc.HTTPRequestEntityTooLarge(explanation=msg)
|
||||
if req.content_length is None and req.is_body_readable:
|
||||
if req.content_length is None:
|
||||
limiter = LimitingReader(req.body_file, max_size)
|
||||
req.body_file = limiter
|
||||
return self.application
|
||||
|
|
|
@ -100,9 +100,3 @@ class TestRequestBodySizeLimiter(test_base.BaseTestCase):
|
|||
self.request.body = b"0" * (self.MAX_REQUEST_BODY_SIZE + 1)
|
||||
response = self.request.get_response(self.middleware)
|
||||
self.assertEqual(413, response.status_int)
|
||||
|
||||
def test_request_too_large_no_content_length(self):
|
||||
self.request.body = b"0" * (self.MAX_REQUEST_BODY_SIZE + 1)
|
||||
self.request.headers['Content-Length'] = None
|
||||
response = self.request.get_response(self.middleware)
|
||||
self.assertEqual(413, response.status_int)
|
||||
|
|
Loading…
Reference in New Issue