You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2013/09/04 12:28:18 UTC

[11/14] git commit: Fix s3 multipart test cases broken by LIBCLOUD-378

Fix s3 multipart test cases broken by LIBCLOUD-378

The breakage was caused by an overzealous check.
Also added test cases for checking small and big uploads via
S3 multipart upload API


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/fedd709c
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/fedd709c
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/fedd709c

Branch: refs/heads/0.13.1
Commit: fedd709cac9e406871310d73ce2c54d5da3a9496
Parents: db4cfbd
Author: Mahendra <ma...@apache.org>
Authored: Tue Sep 3 20:40:54 2013 +0530
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Sep 4 12:05:51 2013 +0200

----------------------------------------------------------------------
 libcloud/test/storage/test_s3.py | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/fedd709c/libcloud/test/storage/test_s3.py
----------------------------------------------------------------------
diff --git a/libcloud/test/storage/test_s3.py b/libcloud/test/storage/test_s3.py
index 2287d5c..9f35169 100644
--- a/libcloud/test/storage/test_s3.py
+++ b/libcloud/test/storage/test_s3.py
@@ -34,6 +34,7 @@ from libcloud.storage.drivers.s3 import S3StorageDriver, S3USWestStorageDriver
 from libcloud.storage.drivers.s3 import S3EUWestStorageDriver
 from libcloud.storage.drivers.s3 import S3APSEStorageDriver
 from libcloud.storage.drivers.s3 import S3APNEStorageDriver
+from libcloud.storage.drivers.s3 import CHUNK_SIZE
 from libcloud.storage.drivers.dummy import DummyIterator
 
 from libcloud.test import StorageMockHttp, MockRawResponse # pylint: disable-msg=E0611
@@ -243,8 +244,6 @@ class S3MockHttp(StorageMockHttp, MockHttpTestCase):
                 self.assertEqual(part_no, str(count))
                 self.assertEqual(etag, headers['etag'])
 
-            self.assertEqual(count, 3)
-
             body = self.fixtures.load('complete_multipart.xml')
             return (httplib.OK,
                     body,
@@ -740,7 +739,7 @@ class S3Tests(unittest.TestCase):
         self.assertTrue('some-value' in obj.meta_data)
         self.driver_type._upload_file = old_func
 
-    def test_upload_object_via_stream(self):
+    def test_upload_small_object_via_stream(self):
 
         if self.driver.supports_s3_multipart_upload:
             self.mock_raw_response_klass.type = 'MULTIPART'
@@ -762,6 +761,28 @@ class S3Tests(unittest.TestCase):
         self.assertEqual(obj.name, object_name)
         self.assertEqual(obj.size, 3)
 
+    def test_upload_big_object_via_stream(self):
+
+        if self.driver.supports_s3_multipart_upload:
+            self.mock_raw_response_klass.type = 'MULTIPART'
+            self.mock_response_klass.type = 'MULTIPART'
+        else:
+            self.mock_raw_response_klass.type = None
+            self.mock_response_klass.type = None
+
+        container = Container(name='foo_bar_container', extra={},
+                              driver=self.driver)
+        object_name = 'foo_test_stream_data'
+        iterator = DummyIterator(data=['2'*CHUNK_SIZE, '3'*CHUNK_SIZE, '5'])
+        extra = {'content_type': 'text/plain'}
+        obj = self.driver.upload_object_via_stream(container=container,
+                                                   object_name=object_name,
+                                                   iterator=iterator,
+                                                   extra=extra)
+
+        self.assertEqual(obj.name, object_name)
+        self.assertEqual(obj.size, CHUNK_SIZE*2 + 1)
+
     def test_upload_object_via_stream_abort(self):
         if not self.driver.supports_s3_multipart_upload:
             return