mirror of
https://github.com/ceph/s3-tests.git
synced 2024-11-21 23:29:47 +00:00
Merge pull request #125 from ceph/versioned_copy_obj
Add testing for copy object to/from a versioned bucket Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
This commit is contained in:
commit
6ca6f7c70e
1 changed files with 44 additions and 0 deletions
|
@ -4918,6 +4918,50 @@ def test_object_copy_key_not_found():
|
|||
eq(e.reason, 'Not Found')
|
||||
eq(e.error_code, 'NoSuchKey')
|
||||
|
||||
@attr(resource='object')
|
||||
@attr(method='put')
|
||||
@attr(operation='copy object to/from versioned bucket')
|
||||
@attr(assertion='works')
|
||||
def test_object_copy_versioned_bucket():
|
||||
bucket = get_new_bucket()
|
||||
check_configure_versioning_retry(bucket, True, "Enabled")
|
||||
|
||||
key = bucket.new_key('foo123bar')
|
||||
_create_key_with_random_content(key.name, 1*1024*1024)
|
||||
|
||||
# copy object in the same bucket
|
||||
key2 = bucket.copy_key('bar321foo', bucket.name, key.name, src_version_id = key.version_id)
|
||||
res = _make_request('GET', bucket, key2)
|
||||
eq(res.status, 200)
|
||||
eq(res.reason, 'OK')
|
||||
|
||||
# second copy
|
||||
key3 = bucket.copy_key('bar321foo2', bucket.name, key2.name, src_version_id = key2.version_id)
|
||||
res = _make_request('GET', bucket, key3)
|
||||
eq(res.status, 200)
|
||||
eq(res.reason, 'OK')
|
||||
|
||||
# copy to another versioned bucket
|
||||
bucket2 = get_new_bucket()
|
||||
check_configure_versioning_retry(bucket2, True, "Enabled")
|
||||
key4 = bucket2.copy_key('bar321foo3', bucket.name, key.name, src_version_id = key.version_id)
|
||||
res = _make_request('GET', bucket, key4)
|
||||
eq(res.status, 200)
|
||||
eq(res.reason, 'OK')
|
||||
|
||||
# copy to another non versioned bucket
|
||||
bucket3 = get_new_bucket()
|
||||
key5 = bucket3.copy_key('bar321foo4', bucket.name, key.name , src_version_id = key.version_id)
|
||||
res = _make_request('GET', bucket, key5)
|
||||
eq(res.status, 200)
|
||||
eq(res.reason, 'OK')
|
||||
|
||||
# copy from a non versioned bucket
|
||||
key6 = bucket.copy_key('foo123bar2', bucket3.name, key5.name)
|
||||
res = _make_request('GET', bucket, key6)
|
||||
eq(res.status, 200)
|
||||
eq(res.reason, 'OK')
|
||||
|
||||
def transfer_part(bucket, mp_id, mp_keyname, i, part):
|
||||
"""Transfer a part of a multipart upload. Designed to be run in parallel.
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue