From b36fe03702e76294d530d405ca61f45a7a382057 Mon Sep 17 00:00:00 2001 From: Luis Pabon Date: Tue, 26 Nov 2013 20:21:10 -0500 Subject: Return BadRequest on X-Delete-At/After headers Gluster-swift does not support X-Delete-After or X-Delete-At headers. The code needs to inform the caller with a 400-BadRequest if they use these headers. Change-Id: Ic9d3a1646c0d26bb0204245efce4501f7479fee6 Signed-off-by: Luis Pabon Reviewed-on: http://review.gluster.org/6364 Reviewed-by: Chetan Risbud --- test/functional/gluster_swift_tests.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'test/functional') diff --git a/test/functional/gluster_swift_tests.py b/test/functional/gluster_swift_tests.py index d7a833e..0a721b6 100644 --- a/test/functional/gluster_swift_tests.py +++ b/test/functional/gluster_swift_tests.py @@ -58,6 +58,37 @@ class TestFile(Base): data_read = file.read() self.assertEquals(data,data_read) + def testInvalidHeadersPUT(self): + file = self.env.container.file(Utils.create_name()) + self.assertRaises(ResponseError, + file.write_random, + self.env.file_size, + hdrs={'X-Delete-At': '9876545321'}) + self.assert_status(400) + self.assertRaises(ResponseError, + file.write_random, + self.env.file_size, + hdrs={'X-Delete-After': '60'}) + self.assert_status(400) + + def testInvalidHeadersPOST(self): + file = self.env.container.file(Utils.create_name()) + file.write_random(self.env.file_size) + headers = file.make_headers(cfg={}) + headers.update({ 'X-Delete-At' : '987654321'}) + # Need to call conn.make_request instead of file.sync_metadata + # because sync_metadata calls make_headers. make_headers() + # overwrites any headers in file.metadata as 'user' metadata + # by appending 'X-Object-Meta-' to any of the headers + # in file.metadata. + file.conn.make_request('POST', file.path, hdrs=headers, cfg={}) + self.assertEqual(400, file.conn.response.status) + + headers = file.make_headers(cfg={}) + headers.update({ 'X-Delete-After' : '60'}) + file.conn.make_request('POST', file.path, hdrs=headers, cfg={}) + self.assertEqual(400, file.conn.response.status) + class TestFileUTF8(Base2, TestFile): set_up = False @@ -336,5 +367,3 @@ class TestMultiProtocolAccess(Base): md5_returned = hashlib.md5(data_read_from_mountP).hexdigest() self.assertEquals(md5_returned,file_info['etag']) fhOnMountPoint.close() - - -- cgit