From 459e3c870a8b9bed7a47f354390b1343acb32708 Mon Sep 17 00:00:00 2001 From: iraj465 Date: Fri, 16 Jul 2021 03:15:53 +0530 Subject: [PATCH] rgw/boto3_s3:Adds delete_objects key limit for list-objects-v2 --- s3tests_boto3/functional/test_s3.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index 9263cfd..45a2d6f 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -2051,6 +2051,30 @@ def test_multi_object_delete_key_limit(): status, error_code = _get_status_and_error_code(e.response) eq(status, 400) +@attr(resource='object') +@attr(method='post') +@attr(operation='delete multiple objects has upper limit of 1000 keys with list-objects-v2') +@attr(assertion='fails 400') +def test_multi_objectv2_delete_key_limit(): + key_names = [f"key-{i}" for i in range(1001)] + bucket_name = _create_objects(keys=key_names) + client = get_client() + + paginator = client.get_paginator('list_objects_v2') + pages = paginator.paginate(Bucket=bucket_name) + numKeys = 0 + for page in pages: + numKeys += len(page['Contents']) + + response = client.list_objects(Bucket=bucket_name) + eq(numKeys, 1001) + + objs_dict = _make_objs_dict(key_names=key_names) + e = assert_raises(ClientError,client.delete_objects,Bucket=bucket_name,Delete=objs_dict) + + status, error_code = _get_status_and_error_code(e.response) + eq(status, 400) + @attr(resource='object') @attr(method='put') @attr(operation='write zero-byte key')