From e4e6a3db12c08a80b7388cafdc7110d4c824c669 Mon Sep 17 00:00:00 2001 From: Vasu Kulkarni Date: Fri, 3 Nov 2017 11:21:39 -0700 Subject: [PATCH] check for either 400 or 416 response code for invalid range test Signed-off-by: Vasu Kulkarni (cherry picked from commit e208a74a050dccfe6af590f656b00de822f15251) --- s3tests/functional/test_s3.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/s3tests/functional/test_s3.py b/s3tests/functional/test_s3.py index c1c6823..b2813ec 100644 --- a/s3tests/functional/test_s3.py +++ b/s3tests/functional/test_s3.py @@ -5344,6 +5344,22 @@ def test_multipart_copy_small(): eq(key2.size, size) _check_key_content(src_key, key2) +@attr(resource='object') +@attr(method='put') +@attr(operation='check multipart copies with an invalid range') +def test_multipart_copy_invalid_range(): + bucket, key = _create_key_with_random_content('source', size=5) + upload = bucket.initiate_multipart_upload('dest') + e = assert_raises(boto.exception.S3ResponseError, copy_part, bucket.name, key.name, bucket, 'dest', upload.id, 0, 0, 21) + valid_status = [400, 416] + if not e.status in valid_status: + raise AssertionError("Invalid response " + str(status)) + valid_reason = ['Bad Request', 'Requested Range Not Satisfiable'] + if not e.reason in valid_reason: + raise AssertionError("Invalid reason " + e.reason ) + # no standard error code defined + # eq(e.error_code, 'InvalidArgument') + @attr(resource='object') @attr(method='put') @attr(operation='check multipart copies with single small part')