speed up multipart tests by temporarily reducing min part size
This commit is contained in:
parent
27a022f695
commit
297c730932
@ -19,6 +19,25 @@ import sure # noqa
|
|||||||
from moto import mock_s3
|
from moto import mock_s3
|
||||||
|
|
||||||
|
|
||||||
|
REDUCED_PART_SIZE = 256
|
||||||
|
|
||||||
|
|
||||||
|
def reduced_min_part_size(f):
|
||||||
|
""" speed up tests by temporarily making the multipart minimum part size
|
||||||
|
small
|
||||||
|
"""
|
||||||
|
import moto.s3.models as s3model
|
||||||
|
orig_size = s3model.UPLOAD_PART_MIN_SIZE
|
||||||
|
|
||||||
|
def wrapped(*args, **kwargs):
|
||||||
|
try:
|
||||||
|
s3model.UPLOAD_PART_MIN_SIZE = REDUCED_PART_SIZE
|
||||||
|
return f(*args, **kwargs)
|
||||||
|
finally:
|
||||||
|
s3model.UPLOAD_PART_MIN_SIZE = orig_size
|
||||||
|
return wrapped
|
||||||
|
|
||||||
|
|
||||||
class MyModel(object):
|
class MyModel(object):
|
||||||
def __init__(self, name, value):
|
def __init__(self, name, value):
|
||||||
self.name = name
|
self.name = name
|
||||||
@ -72,12 +91,13 @@ def test_multipart_upload_too_small():
|
|||||||
|
|
||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@reduced_min_part_size
|
||||||
def test_multipart_upload():
|
def test_multipart_upload():
|
||||||
conn = boto.connect_s3('the_key', 'the_secret')
|
conn = boto.connect_s3('the_key', 'the_secret')
|
||||||
bucket = conn.create_bucket("foobar")
|
bucket = conn.create_bucket("foobar")
|
||||||
|
|
||||||
multipart = bucket.initiate_multipart_upload("the-key")
|
multipart = bucket.initiate_multipart_upload("the-key")
|
||||||
part1 = b'0' * 5242880
|
part1 = b'0' * REDUCED_PART_SIZE
|
||||||
multipart.upload_part_from_file(BytesIO(part1), 1)
|
multipart.upload_part_from_file(BytesIO(part1), 1)
|
||||||
# last part, can be less than 5 MB
|
# last part, can be less than 5 MB
|
||||||
part2 = b'1'
|
part2 = b'1'
|
||||||
@ -88,6 +108,7 @@ def test_multipart_upload():
|
|||||||
|
|
||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@reduced_min_part_size
|
||||||
def test_multipart_upload_out_of_order():
|
def test_multipart_upload_out_of_order():
|
||||||
conn = boto.connect_s3('the_key', 'the_secret')
|
conn = boto.connect_s3('the_key', 'the_secret')
|
||||||
bucket = conn.create_bucket("foobar")
|
bucket = conn.create_bucket("foobar")
|
||||||
@ -96,7 +117,7 @@ def test_multipart_upload_out_of_order():
|
|||||||
# last part, can be less than 5 MB
|
# last part, can be less than 5 MB
|
||||||
part2 = b'1'
|
part2 = b'1'
|
||||||
multipart.upload_part_from_file(BytesIO(part2), 4)
|
multipart.upload_part_from_file(BytesIO(part2), 4)
|
||||||
part1 = b'0' * 5242880
|
part1 = b'0' * REDUCED_PART_SIZE
|
||||||
multipart.upload_part_from_file(BytesIO(part1), 2)
|
multipart.upload_part_from_file(BytesIO(part1), 2)
|
||||||
multipart.complete_upload()
|
multipart.complete_upload()
|
||||||
# we should get both parts as the key contents
|
# we should get both parts as the key contents
|
||||||
@ -104,6 +125,7 @@ def test_multipart_upload_out_of_order():
|
|||||||
|
|
||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@reduced_min_part_size
|
||||||
def test_multipart_upload_with_headers():
|
def test_multipart_upload_with_headers():
|
||||||
conn = boto.connect_s3('the_key', 'the_secret')
|
conn = boto.connect_s3('the_key', 'the_secret')
|
||||||
bucket = conn.create_bucket("foobar")
|
bucket = conn.create_bucket("foobar")
|
||||||
@ -118,6 +140,7 @@ def test_multipart_upload_with_headers():
|
|||||||
|
|
||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@reduced_min_part_size
|
||||||
def test_multipart_upload_with_copy_key():
|
def test_multipart_upload_with_copy_key():
|
||||||
conn = boto.connect_s3('the_key', 'the_secret')
|
conn = boto.connect_s3('the_key', 'the_secret')
|
||||||
bucket = conn.create_bucket("foobar")
|
bucket = conn.create_bucket("foobar")
|
||||||
@ -126,7 +149,7 @@ def test_multipart_upload_with_copy_key():
|
|||||||
key.set_contents_from_string("key_value")
|
key.set_contents_from_string("key_value")
|
||||||
|
|
||||||
multipart = bucket.initiate_multipart_upload("the-key")
|
multipart = bucket.initiate_multipart_upload("the-key")
|
||||||
part1 = b'0' * 5242880
|
part1 = b'0' * REDUCED_PART_SIZE
|
||||||
multipart.upload_part_from_file(BytesIO(part1), 1)
|
multipart.upload_part_from_file(BytesIO(part1), 1)
|
||||||
multipart.copy_part_from_key("foobar", "original-key", 2)
|
multipart.copy_part_from_key("foobar", "original-key", 2)
|
||||||
multipart.complete_upload()
|
multipart.complete_upload()
|
||||||
@ -134,12 +157,13 @@ def test_multipart_upload_with_copy_key():
|
|||||||
|
|
||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@reduced_min_part_size
|
||||||
def test_multipart_upload_cancel():
|
def test_multipart_upload_cancel():
|
||||||
conn = boto.connect_s3('the_key', 'the_secret')
|
conn = boto.connect_s3('the_key', 'the_secret')
|
||||||
bucket = conn.create_bucket("foobar")
|
bucket = conn.create_bucket("foobar")
|
||||||
|
|
||||||
multipart = bucket.initiate_multipart_upload("the-key")
|
multipart = bucket.initiate_multipart_upload("the-key")
|
||||||
part1 = b'0' * 5242880
|
part1 = b'0' * REDUCED_PART_SIZE
|
||||||
multipart.upload_part_from_file(BytesIO(part1), 1)
|
multipart.upload_part_from_file(BytesIO(part1), 1)
|
||||||
multipart.cancel_upload()
|
multipart.cancel_upload()
|
||||||
# TODO we really need some sort of assertion here, but we don't currently
|
# TODO we really need some sort of assertion here, but we don't currently
|
||||||
@ -147,13 +171,14 @@ def test_multipart_upload_cancel():
|
|||||||
|
|
||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@reduced_min_part_size
|
||||||
def test_multipart_etag():
|
def test_multipart_etag():
|
||||||
# Create Bucket so that test can run
|
# Create Bucket so that test can run
|
||||||
conn = boto.connect_s3('the_key', 'the_secret')
|
conn = boto.connect_s3('the_key', 'the_secret')
|
||||||
bucket = conn.create_bucket('mybucket')
|
bucket = conn.create_bucket('mybucket')
|
||||||
|
|
||||||
multipart = bucket.initiate_multipart_upload("the-key")
|
multipart = bucket.initiate_multipart_upload("the-key")
|
||||||
part1 = b'0' * 5242880
|
part1 = b'0' * REDUCED_PART_SIZE
|
||||||
multipart.upload_part_from_file(BytesIO(part1), 1)
|
multipart.upload_part_from_file(BytesIO(part1), 1)
|
||||||
# last part, can be less than 5 MB
|
# last part, can be less than 5 MB
|
||||||
part2 = b'1'
|
part2 = b'1'
|
||||||
@ -165,6 +190,7 @@ def test_multipart_etag():
|
|||||||
|
|
||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
|
@reduced_min_part_size
|
||||||
def test_multipart_invalid_order():
|
def test_multipart_invalid_order():
|
||||||
# Create Bucket so that test can run
|
# Create Bucket so that test can run
|
||||||
conn = boto.connect_s3('the_key', 'the_secret')
|
conn = boto.connect_s3('the_key', 'the_secret')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user