From: Ray Lv Date: Mon, 15 Dec 2014 08:47:34 +0000 (+0800) Subject: s3tests: add regression test for bug #10311 - rgw: Object is deleted automatically... X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F27%2Fhead;p=s3-tests.git s3tests: add regression test for bug #10311 - rgw: Object is deleted automatically if conditional PUT returns 412 Test for bug #10311 Signed-off-by: Ray Lv --- diff --git a/s3tests/functional/test_s3.py b/s3tests/functional/test_s3.py index 3c8ff22f..acd914f5 100644 --- a/s3tests/functional/test_s3.py +++ b/s3tests/functional/test_s3.py @@ -2086,6 +2086,9 @@ def test_put_object_ifmatch_failed(): eq(e.reason, 'Precondition Failed') eq(e.error_code, 'PreconditionFailed') + got_old_data = key.get_contents_as_string() + eq(got_old_data, 'bar') + @attr(resource='object') @attr(method='put') @@ -2117,6 +2120,10 @@ def test_put_object_ifmatch_nonexisted_failed(): eq(e.reason, 'Precondition Failed') eq(e.error_code, 'PreconditionFailed') + e = assert_raises(boto.exception.S3ResponseError, key.get_contents_as_string) + eq(e.status, 404) + eq(e.reason, 'Not Found') + eq(e.error_code, 'NoSuchKey') @attr(resource='object') @attr(method='put') @@ -2153,6 +2160,8 @@ def test_put_object_ifnonmatch_failed(): eq(e.reason, 'Precondition Failed') eq(e.error_code, 'PreconditionFailed') + got_old_data = key.get_contents_as_string() + eq(got_old_data, 'bar') @attr(resource='object') @attr(method='put') @@ -2185,6 +2194,9 @@ def test_put_object_ifnonmatch_overwrite_existed_failed(): eq(e.reason, 'Precondition Failed') eq(e.error_code, 'PreconditionFailed') + got_old_data = key.get_contents_as_string() + eq(got_old_data, 'bar') + def _setup_request(bucket_acl=None, object_acl=None): """