From 6706d5d8a9bc841fcd81d141ca40e365b895d5c3 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Sat, 2 May 2015 10:51:30 -0700 Subject: [PATCH] Add multipart tests with invalid parts Signed-off-by: Andrew Gaul --- s3tests/functional/test_s3.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/s3tests/functional/test_s3.py b/s3tests/functional/test_s3.py index 761e478..5468185 100644 --- a/s3tests/functional/test_s3.py +++ b/s3tests/functional/test_s3.py @@ -4716,6 +4716,36 @@ def test_list_multipart_upload(): upload2.cancel_upload() upload3.cancel_upload() +@attr(resource='object') +@attr(method='put') +@attr(operation='multi-part upload with missing part') +def test_multipart_upload_missing_part(): + bucket = get_new_bucket() + key_name = "mymultipart" + mp = bucket.initiate_multipart_upload(key_name) + mp.upload_part_from_file(StringIO('\x00'), 1) + xml = mp.to_xml() + xml = xml.replace('1', '9999') + e = assert_raises(boto.exception.S3ResponseError, bucket.complete_multipart_upload, key_name, mp.id, xml) + eq(e.status, 400) + eq(e.reason, 'Bad Request') + eq(e.error_code, 'InvalidPart') + +@attr(resource='object') +@attr(method='put') +@attr(operation='multi-part upload with incorrect ETag') +def test_multipart_upload_incorrect_etag(): + bucket = get_new_bucket() + key_name = "mymultipart" + mp = bucket.initiate_multipart_upload(key_name) + mp.upload_part_from_file(StringIO('\x00'), 1) + xml = mp.to_xml() + xml = xml.replace('"93b885adfe0da089cdf634904fd59f71"', '"ffffffffffffffffffffffffffffffff"') + e = assert_raises(boto.exception.S3ResponseError, bucket.complete_multipart_upload, key_name, mp.id, xml) + eq(e.status, 400) + eq(e.reason, 'Bad Request') + eq(e.error_code, 'InvalidPart') + def _simple_http_req_100_cont(host, port, is_secure, method, resource): """ Send the specified request w/expect 100-continue