diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index 85dfba16..03def9d4 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -5807,6 +5807,7 @@ def test_object_copy_versioning_multipart_upload(): assert key1_metadata == response['Metadata'] assert content_type == response['ContentType'] +@pytest.mark.multipart def test_multipart_upload_empty(): bucket_name = get_new_bucket() client = get_client() @@ -5820,6 +5821,7 @@ def test_multipart_upload_empty(): assert error_code == 'MalformedXML' @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_upload_small(): bucket_name = get_new_bucket() client = get_client() @@ -5895,6 +5897,7 @@ def _check_key_content(src_key, src_bucket_name, dest_key, dest_bucket_name, ver assert src_data == dest_data @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_copy_small(): src_key = 'foo' src_bucket_name = _create_key_with_random_content(src_key) @@ -5911,6 +5914,7 @@ def test_multipart_copy_small(): assert size == response['ContentLength'] _check_key_content(src_key, src_bucket_name, dest_key, dest_bucket_name) +@pytest.mark.multipart def test_multipart_copy_invalid_range(): client = get_client() src_key = 'source' @@ -5932,6 +5936,7 @@ def test_multipart_copy_invalid_range(): # TODO: remove fails_on_rgw when https://tracker.ceph.com/issues/40795 is resolved @pytest.mark.fails_on_rgw +@pytest.mark.multipart def test_multipart_copy_improper_range(): client = get_client() src_key = 'source' @@ -5961,6 +5966,7 @@ def test_multipart_copy_improper_range(): assert error_code == 'InvalidArgument' +@pytest.mark.multipart def test_multipart_copy_without_range(): client = get_client() src_key = 'source' @@ -5987,6 +5993,7 @@ def test_multipart_copy_without_range(): _check_key_content(src_key, src_bucket_name, dest_key, dest_bucket_name) @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_copy_special_names(): src_bucket_name = get_new_bucket() @@ -6021,6 +6028,7 @@ def _check_content_using_range(key, bucket_name, data, step): assert body == data[ofs:end+1] @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_upload(): bucket_name = get_new_bucket() key="mymultipart" @@ -6079,6 +6087,7 @@ def check_configure_versioning_retry(bucket_name, status, expected_string): assert expected_string == read_status @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_copy_versioned(): src_bucket_name = get_new_bucket() dest_bucket_name = get_new_bucket() @@ -6125,6 +6134,7 @@ def _check_upload_multipart_resend(bucket_name, key, objlen, resend_parts): _check_content_using_range(key, bucket_name, data, 10000000) @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_upload_resend_part(): bucket_name = get_new_bucket() key="mymultipart" @@ -6136,6 +6146,7 @@ def test_multipart_upload_resend_part(): _check_upload_multipart_resend(bucket_name, key, objlen, [1,2]) _check_upload_multipart_resend(bucket_name, key, objlen, [0,1,2,3,4,5]) +@pytest.mark.multipart def test_multipart_upload_multiple_sizes(): bucket_name = get_new_bucket() key="mymultipart" @@ -6166,6 +6177,7 @@ def test_multipart_upload_multiple_sizes(): client.complete_multipart_upload(Bucket=bucket_name, Key=key, UploadId=upload_id, MultipartUpload={'Parts': parts}) @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_copy_multiple_sizes(): src_key = 'foo' src_bucket_name = _create_key_with_random_content(src_key, 12*1024*1024) @@ -6204,6 +6216,7 @@ def test_multipart_copy_multiple_sizes(): client.complete_multipart_upload(Bucket=dest_bucket_name, Key=dest_key, UploadId=upload_id, MultipartUpload={'Parts': parts}) _check_key_content(src_key, src_bucket_name, dest_key, dest_bucket_name) +@pytest.mark.multipart def test_multipart_upload_size_too_small(): bucket_name = get_new_bucket() key="mymultipart" @@ -6251,10 +6264,12 @@ def _do_test_multipart_upload_contents(bucket_name, key, num_parts): return all_payload @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_upload_contents(): bucket_name = get_new_bucket() _do_test_multipart_upload_contents(bucket_name, 'mymultipart', 3) +@pytest.mark.multipart def test_multipart_upload_overwrite_existing_object(): bucket_name = get_new_bucket() client = get_client() @@ -6380,6 +6395,7 @@ def match(upload, key, uploadid, userid, username): finally: client1.abort_multipart_upload(Bucket=bucket_name, Key=key1, UploadId=upload1) +@pytest.mark.multipart def test_multipart_upload_missing_part(): bucket_name = get_new_bucket() client = get_client() @@ -6399,6 +6415,7 @@ def test_multipart_upload_missing_part(): assert status == 400 assert error_code == 'InvalidPart' +@pytest.mark.multipart def test_multipart_upload_incorrect_etag(): bucket_name = get_new_bucket() client = get_client() @@ -6419,6 +6436,7 @@ def test_multipart_upload_incorrect_etag(): assert error_code == 'InvalidPart' @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_get_part(): bucket_name = get_new_bucket() client = get_client() @@ -6462,6 +6480,7 @@ def test_multipart_get_part(): @pytest.mark.encryption @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_sse_c_get_part(): bucket_name = get_new_bucket() client = get_client() @@ -6516,6 +6535,7 @@ def test_multipart_sse_c_get_part(): assert error_code == 'InvalidPart' @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_single_get_part(): bucket_name = get_new_bucket() client = get_client() @@ -7281,6 +7301,7 @@ def trigger(self): if self.count == self.trigger_count: self.result = self.action() +@pytest.mark.multipart def test_multipart_resend_first_finishes_last(): bucket_name = get_new_bucket() client = get_client() @@ -7778,6 +7799,7 @@ def test_versioning_obj_create_versions_remove_special_names(): assert len(version_ids) == len(contents) @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_versioning_obj_create_overwrite_multipart(): bucket_name = get_new_bucket() client = get_client() @@ -13261,6 +13283,7 @@ def test_ignore_public_acls(): check_access_denied(alt_client.get_object, Bucket=bucket_name, Key='key1') +@pytest.mark.multipart def test_multipart_upload_on_a_bucket_with_policy(): bucket_name = get_new_bucket() client = get_client() @@ -13776,6 +13799,7 @@ def test_object_checksum_sha256(): @pytest.mark.checksum @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_checksum_sha256(): bucket = get_new_bucket() client = get_client() @@ -13841,6 +13865,7 @@ def test_multipart_checksum_sha256(): @pytest.mark.checksum @pytest.mark.fails_on_dbstore +@pytest.mark.multipart def test_multipart_checksum_3parts(): bucket = get_new_bucket() client = get_client()