From 800a9a758f89f776c9fff13842300181ee57363d Mon Sep 17 00:00:00 2001 From: Malcolm Lee Date: Wed, 24 Jan 2018 13:55:53 +0800 Subject: [PATCH] Add test for muiltpart copy without 'x-amz-copy-source-range' header --- s3tests/functional/test_s3.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/s3tests/functional/test_s3.py b/s3tests/functional/test_s3.py index 45a70c3..425d913 100644 --- a/s3tests/functional/test_s3.py +++ b/s3tests/functional/test_s3.py @@ -5397,6 +5397,25 @@ def test_multipart_copy_invalid_range(): # no standard error code defined # eq(e.error_code, 'InvalidArgument') +@attr(resource='object') +@attr(method='put') +@attr(operation='check multipart copies without x-amz-copy-source-range') +def test_multipart_copy_without_range(): + (src_bucket, src_key) = _create_key_with_random_content('source', size=10) + dst_bucket = get_new_bucket() + dst_keyname = "mymultipartcopy" + + upload = dst_bucket.initiate_multipart_upload(dst_keyname) + # MultiPartUpload.copy_part_from_key() always add "x-amz-copy-source-range" in header + # So we can use copy_key() with query_args + query_args = 'uploadId=%s&partNumber=%d' % (upload.id, 1) + dst_bucket.copy_key(dst_keyname, src_bucket.name, src_key.name, query_args=query_args) + upload.complete_upload() + + key2 = dst_bucket.get_key(dst_keyname) + eq(key2.size, 10) + _check_key_content(src_key, key2) + @attr(resource='object') @attr(method='put') @attr(operation='check multipart copies with single small part')