Merge pull request #27 from xylv/wip-test-issue-10311

s3tests: add regression test for bug #10311 - rgw: Object is deleted automatically if conditional PUT returns 412

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
This commit is contained in:
Yehuda Sadeh 2015-01-21 14:49:47 -08:00
commit 4d0af2149f

View file

@ -2086,6 +2086,9 @@ def test_put_object_ifmatch_failed():
eq(e.reason, 'Precondition Failed') eq(e.reason, 'Precondition Failed')
eq(e.error_code, 'PreconditionFailed') eq(e.error_code, 'PreconditionFailed')
got_old_data = key.get_contents_as_string()
eq(got_old_data, 'bar')
@attr(resource='object') @attr(resource='object')
@attr(method='put') @attr(method='put')
@ -2117,6 +2120,10 @@ def test_put_object_ifmatch_nonexisted_failed():
eq(e.reason, 'Precondition Failed') eq(e.reason, 'Precondition Failed')
eq(e.error_code, 'PreconditionFailed') 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(resource='object')
@attr(method='put') @attr(method='put')
@ -2153,6 +2160,8 @@ def test_put_object_ifnonmatch_failed():
eq(e.reason, 'Precondition Failed') eq(e.reason, 'Precondition Failed')
eq(e.error_code, 'PreconditionFailed') eq(e.error_code, 'PreconditionFailed')
got_old_data = key.get_contents_as_string()
eq(got_old_data, 'bar')
@attr(resource='object') @attr(resource='object')
@attr(method='put') @attr(method='put')
@ -2185,6 +2194,9 @@ def test_put_object_ifnonmatch_overwrite_existed_failed():
eq(e.reason, 'Precondition Failed') eq(e.reason, 'Precondition Failed')
eq(e.error_code, 'PreconditionFailed') 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): def _setup_request(bucket_acl=None, object_acl=None):
""" """