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 2011/11/01 23:09:43 UTC

svn commit: r1196320 - /libcloud/trunk/test/storage/test_base.py

Author: tomaz
Date: Tue Nov  1 22:09:43 2011
New Revision: 1196320

URL: http://svn.apache.org/viewvc?rev=1196320&view=rev
Log:
Add test for _upload_data.

Modified:
    libcloud/trunk/test/storage/test_base.py

Modified: libcloud/trunk/test/storage/test_base.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/storage/test_base.py?rev=1196320&r1=1196319&r2=1196320&view=diff
==============================================================================
--- libcloud/trunk/test/storage/test_base.py (original)
+++ libcloud/trunk/test/storage/test_base.py Tue Nov  1 22:09:43 2011
@@ -28,7 +28,11 @@ class BaseStorageTests(unittest.TestCase
     def setUp(self):
         self.send_called = 0
         StorageDriver.connectionCls.conn_classes = (None, StorageMockHttp)
-        self.driver = StorageDriver('username', 'key', host='localhost')
+
+        self.driver1 = StorageDriver('username', 'key', host='localhost')
+        self.driver1.supports_chunked_encoding = True
+        self.driver2 = StorageDriver('username', 'key', host='localhost')
+        self.driver2.supports_chunked_encoding = False
 
     def test__upload_object_iterator_must_have_next_method(self):
         class Iterator(object):
@@ -54,13 +58,13 @@ class BaseStorageTests(unittest.TestCase
 
         for value in valid_iterators:
             kwargs['iterator'] = value
-            self.driver._upload_object(**kwargs)
+            self.driver1._upload_object(**kwargs)
 
         for value in invalid_iterators:
             kwargs['iterator'] = value
 
             try:
-                self.driver._upload_object(**kwargs)
+                self.driver1._upload_object(**kwargs)
             except AttributeError:
                 pass
             else:
@@ -78,7 +82,7 @@ class BaseStorageTests(unittest.TestCase
 
         # Normal
         success, data_hash, bytes_transferred = \
-                 self.driver._stream_data(response=response, iterator=iterator,
+                 self.driver1._stream_data(response=response, iterator=iterator,
                                           chunked=False, calculate_hash=True)
 
         self.assertTrue(success)
@@ -88,7 +92,7 @@ class BaseStorageTests(unittest.TestCase
 
         # Chunked
         success, data_hash, bytes_transferred = \
-                 self.driver._stream_data(response=response, iterator=iterator,
+                 self.driver1._stream_data(response=response, iterator=iterator,
                                           chunked=True, calculate_hash=True)
 
         self.assertTrue(success)
@@ -96,6 +100,23 @@ class BaseStorageTests(unittest.TestCase
         self.assertEqual(bytes_transferred, 0)
         self.assertEqual(self.send_called, 5)
 
+    def test__upload_data(self):
+        def mock_send(data):
+            self.send_called += 1
+
+        response = Mock()
+        response.connection.connection.send = mock_send
+
+        data = '123456789901234567'
+        success, data_hash, bytes_transferred = \
+                 self.driver1._upload_data(response=response, data=data,
+                                           calculate_hash=True)
+
+        self.assertTrue(success)
+        self.assertEqual(data_hash, hashlib.md5(data).hexdigest())
+        self.assertEqual(bytes_transferred, (len(data)))
+        self.assertEqual(self.send_called, 1)
+
 
 if __name__ == '__main__':
     sys.exit(unittest.main())