Răsfoiți Sursa

completed unit tests for List and update the filter method in helpers to do a contains search.

madhugilla 9 ani în urmă
părinte
comite
80b12d4c6f

+ 13 - 14
azure_test/test_azure_snapshots_service.py

@@ -89,20 +89,6 @@ class AzureSnapshotsServiceTestCase(ProviderTestBase):
         self.assertTrue(
             snapshot is None, "Snapshot should not be available")
 
-    @helpers.skipIfNoService(['block_store.snapshots'])
-    def test_azure_snapshot_find(self):
-        with self.assertRaises(NotImplementedError):
-            snapshots = self.provider.block_store.snapshots.find("Snapshot")
-            self.assertTrue(
-                len(snapshots) == 2, "Snapshot should not be available")
-
-    @helpers.skipIfNoService(['block_store.snapshots'])
-    def test_azure_snapshot_find_ifNotExist(self):
-        with self.assertRaises(NotImplementedError):
-            snapshots = self.provider.block_store.snapshots.find("Snapshot123")
-            self.assertTrue(
-                len(snapshots) == 0, "Snapshot should not be available")
-
     @helpers.skipIfNoService(['block_store.snapshots'])
     def test_azure_snapshots_list(self):
         snapshot_list = self.provider \
@@ -110,3 +96,16 @@ class AzureSnapshotsServiceTestCase(ProviderTestBase):
         print("Snapshot List - " + str(snapshot_list))
         self.assertTrue(
             snapshot_list.total_results > 0)
+
+    @helpers.skipIfNoService(['block_store.snapshots'])
+    def test_azure_snapshot_find_exists(self):
+        snapshots = self.provider.block_store.snapshots.find("snapshot1")
+        for snapshot in snapshots:
+            self.assertTrue("snapshot" in snapshot.name)
+        print(snapshots.total_results)
+        self.assertTrue(snapshots.total_results > 0)
+
+    @helpers.skipIfNoService(['block_store.snapshots'])
+    def test_azure_snapshot_find_not_exists(self):
+        snapshots = self.provider.block_store.snapshots.find('dontfindme')
+        self.assertTrue(snapshots.total_results == 0)

+ 1 - 1
cloudbridge/cloud/providers/azure/helpers.py

@@ -3,7 +3,7 @@ def filter(list_items, filters):
     if filters:
         for obj in list_items:
             for key in filters:
-                if obj.tags and filters[key] == obj.tags.get(key, ''):
+                if obj.tags and filters[key] in obj.tags.get(key, ''):
                     filtered_list.append(obj)
 
         return filtered_list

+ 9 - 2
cloudbridge/cloud/providers/azure/services.py

@@ -248,8 +248,15 @@ class AzureSnapshotService(BaseSnapshotService):
             return None
 
     def find(self, name, limit=None, marker=None):
-        raise NotImplementedError('AzureSnapShotService not '
-                                  'implemented this method')
+        """
+             Searches for a snapshot by a given list of attributes.
+        """
+        filters = {'Name': name}
+        cb_snapshots = [AzureSnapshot(self.provider, snapshot)
+                        for snapshot in azure_helpers.filter(
+                self.provider.azure_client.list_snapshots(), filters)]
+        return ClientPagedResultList(self.provider, cb_snapshots,
+                                     limit=limit, marker=marker)
 
     def list(self, limit=None, marker=None):
         """