]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
test_s3: test multi-part uploads using boto provided functionality.
authorcaleb miles <caselim@gmail.com>
Wed, 31 Oct 2012 19:32:03 +0000 (15:32 -0400)
committerYehuda Sadeh <yehuda@inktank.com>
Wed, 20 Feb 2013 21:51:14 +0000 (13:51 -0800)
Tests the implementation of multi-part upload and verifies written
object.

Signed-off-by: caleb miles <caleb.miles@inktank.com>
s3tests/functional/test_s3.py

index fca7e1e394f0cece603848a114b9069d42ca0c3a..4e79532c84976aae95e303941dd54ca5343010db 100644 (file)
@@ -4004,6 +4004,46 @@ def test_multipart_upload():
     eq(obj_count, 1)
     eq(bytes_used, 30 * 1024 * 1024)
 
+@attr(resource='object')
+@attr(method='put')
+@attr(operation='check contents of multi-part upload')
+@attr(assertion='successful')
+def test_multipart_upload_contents():
+    bucket = get_new_bucket()
+    key_name="mymultipart"
+    num_parts=5
+    payload='foo'*10*1024*1024
+    mp=bucket.initiate_multipart_upload(key_name)
+    for i in range(0, num_parts):
+        mp.upload_part_from_file(StringIO(payload), i+1)
+
+    mp.complete_upload()
+    key=bucket.get_key(key_name)
+    test_string=key.get_contents_as_string()
+    assert test_string == payload*num_parts
+
+
+@attr(resource='object')
+@attr(method='put')
+@attr(operation=' multi-part upload overwrites existing key')
+@attr(assertion='successful')
+def test_multipart_upload_overwrite_existing_object():
+    bucket = get_new_bucket()
+    key_name="mymultipart"
+    payload='bar'*10*1024*1024
+    num_parts=5
+    key=bucket.new_key(key_name)
+    key.set_contents_from_string(payload)
+
+    mp=bucket.initiate_multipart_upload(key_name)
+    for i in range(0, num_parts):
+        mp.upload_part_from_file(StringIO(payload), i+1)
+
+    mp.complete_upload()
+    key=bucket.get_key(key_name)
+    test_string=key.get_contents_as_string()
+    assert test_string == payload*num_parts
+
 @attr(resource='object')
 @attr(method='put')
 @attr(operation='abort multi-part upload')