Merge "Add an explicit unit test for handling content-length: 0"

This commit is contained in:
Jenkins 2013-05-03 11:47:19 +00:00 committed by Gerrit Code Review
commit b9a6bcb431

View File

@ -661,6 +661,24 @@ class TestObjectController(unittest.TestCase):
resp = self.object_controller.PUT(req) resp = self.object_controller.PUT(req)
self.assertEquals(resp.status_int, 411) self.assertEquals(resp.status_int, 411)
def test_PUT_zero_content_length(self):
req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'},
headers={'X-Timestamp': normalize_timestamp(time()),
'Content-Type': 'application/octet-stream'})
req.body = ''
self.assertEquals(req.headers['Content-Length'], '0')
resp = self.object_controller.PUT(req)
self.assertEquals(resp.status_int, 201)
def test_PUT_zero_content_length_mismatched(self):
req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'},
headers={'X-Timestamp': normalize_timestamp(time()),
'Content-Type': 'application/octet-stream'})
req.body = 'VERIFY'
req.headers['Content-Length'] = '0'
resp = self.object_controller.PUT(req)
self.assertEquals(resp.status_int, 499)
def test_PUT_common(self): def test_PUT_common(self):
timestamp = normalize_timestamp(time()) timestamp = normalize_timestamp(time())
req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'}, req = Request.blank('/sda1/p/a/c/o', environ={'REQUEST_METHOD': 'PUT'},