Sfoglia il codice sorgente

Add implementation for AWS Bucket .get method and a test

Enis Afgan 10 anni fa
parent
commit
8985029260

+ 4 - 2
cloudbridge/cloud/providers/aws/resources.py

@@ -748,8 +748,10 @@ class AWSBucket(BaseBucket):
         """
         Retrieve a given object from this bucket.
         """
-        raise NotImplementedError(
-            'Bucket.list not implemented by this provider')
+        key = Key(self._bucket, key)
+        if key.exists():
+            return AWSBucketObject(self._provider, key)
+        return None
 
     def list(self, limit=None, marker=None):
         """

+ 6 - 0
test/test_object_store_service.py

@@ -1,6 +1,7 @@
 from io import BytesIO
 import uuid
 
+from cloudbridge.cloud.interfaces.resources import BucketObject
 from test.helpers import ProviderTestBase
 import test.helpers as helpers
 
@@ -110,6 +111,11 @@ class CloudObjectStoreServiceTestCase(ProviderTestBase):
                     " expected: {1}" .format(found_objs[0].id,
                                              obj.id))
 
+                obj_too = test_bucket.get(obj_name)
+                self.assertTrue(
+                    isinstance(obj_too, BucketObject),
+                    "Did not get object {0} of expected type.".format(obj_too))
+
             objs = test_bucket.list()
             found_objs = [o for o in objs if o.name == obj_name]
             self.assertTrue(