diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index 96bdc4b..0bc395c 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -2050,6 +2050,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')