Przeglądaj źródła

Fixed invalid concurrency assumption in tests when comparing lists of
objects.

nuwan_ag 10 lat temu
rodzic
commit
fe4fa22ac2

+ 17 - 14
test/test_block_store_service.py

@@ -1,4 +1,3 @@
-import itertools
 import uuid
 
 from cloudbridge.cloud.interfaces import SnapshotState
@@ -38,18 +37,20 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase):
                 "repr(obj) should contain the object id so that the object"
                 " can be reconstructed, but does not. eval(repr(obj)) == obj")
             volumes = self.provider.block_store.volumes.list()
-            # check iteration
-            iter_volumes = list(itertools.islice(
-                self.provider.block_store.volumes,
-                len(volumes)))
-            self.assertListEqual(iter_volumes, volumes)
-
             found_volumes = [vol for vol in volumes if vol.name == name]
             self.assertTrue(
                 len(found_volumes) == 1,
                 "List volumes does not return the expected volume %s" %
                 name)
 
+            # check iteration
+            found_volumes = [vol for vol in self.provider.block_store.volumes
+                             if vol.name == name]
+            self.assertTrue(
+                len(found_volumes) == 1,
+                "Iter volumes does not return the expected volume %s" %
+                name)
+
             get_vol = self.provider.block_store.volumes.get(
                 test_vol.id)
             self.assertTrue(
@@ -132,13 +133,6 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase):
                     " can be reconstructed, but does not.")
 
                 snaps = self.provider.block_store.snapshots.list()
-
-                # check iteration
-                iter_snaps = list(itertools.islice(
-                    self.provider.block_store.snapshots,
-                    len(snaps)))
-                self.assertListEqual(iter_snaps, snaps)
-
                 found_snaps = [snap for snap in snaps
                                if snap.name == snap_name]
                 self.assertTrue(
@@ -146,6 +140,15 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase):
                     "List snapshots does not return the expected volume %s" %
                     name)
 
+                # check iteration
+                found_snaps = [
+                    snap for snap in self.provider.block_store.snapshots
+                    if snap.name == snap_name]
+                self.assertTrue(
+                    len(found_snaps) == 1,
+                    "Iter snapshots does not return the expected volume %s" %
+                    name)
+
                 get_snap = self.provider.block_store.snapshots.get(
                     test_snap.id)
                 self.assertTrue(

+ 8 - 7
test/test_compute_service.py

@@ -1,4 +1,3 @@
-import itertools
 import uuid
 
 import ipaddress
@@ -36,18 +35,20 @@ class CloudComputeServiceTestCase(ProviderTestBase):
 
             all_instances = self.provider.compute.instances.list()
 
-            # check iteration
-            iter_instances = list(itertools.islice(
-                self.provider.compute.instances,
-                len(all_instances)))
-            self.assertListEqual(iter_instances, all_instances)
-
             found_instances = [i for i in all_instances if i.name == name]
             self.assertTrue(
                 len(found_instances) == 1,
                 "List instances does not return the expected instance %s" %
                 name)
 
+            # check iteration
+            found_instances = [i for i in self.provider.compute.instances
+                               if i.name == name]
+            self.assertTrue(
+                len(found_instances) == 1,
+                "Iter instances does not return the expected instance %s" %
+                name)
+
             get_inst = self.provider.compute.instances.get(
                 inst.id)
             self.assertTrue(

+ 8 - 8
test/test_image_service.py

@@ -1,4 +1,3 @@
-import itertools
 import uuid
 
 import six
@@ -50,13 +49,6 @@ class CloudImageServiceTestCase(ProviderTestBase):
                     "Image description must be None or a string")
 
                 images = self.provider.compute.images.list()
-
-                # check iteration
-                iter_images = list(itertools.islice(
-                    self.provider.compute.images,
-                    len(images)))
-                self.assertListEqual(iter_images, images)
-
                 found_images = [image for image in images
                                 if image.name == name]
                 self.assertTrue(
@@ -64,6 +56,14 @@ class CloudImageServiceTestCase(ProviderTestBase):
                     "List images does not return the expected image %s" %
                     name)
 
+                # check iteration
+                found_images = [image for image in self.provider.compute.images
+                                if image.name == name]
+                self.assertTrue(
+                    len(found_images) == 1,
+                    "Iter images does not return the expected image %s" %
+                    name)
+
                 get_img = self.provider.compute.images.get(
                     test_image.id)
                 self.assertTrue(

+ 1 - 4
test/test_instance_types_service.py

@@ -1,4 +1,3 @@
-import itertools
 from test import helpers
 
 import six
@@ -16,9 +15,7 @@ class CloudInstanceTypesServiceTestCase(ProviderTestBase):
     def test_instance_types(self):
         instance_types = self.provider.compute.instance_types.list()
         # check iteration
-        iter_instance_types = list(itertools.islice(
-            self.provider.compute.instance_types,
-            len(instance_types)))
+        iter_instance_types = list(self.provider.compute.instance_types)
         self.assertListEqual(iter_instance_types, instance_types)
 
         for inst_type in instance_types:

+ 9 - 10
test/test_object_store_service.py

@@ -1,5 +1,4 @@
 from io import BytesIO
-import itertools
 import uuid
 
 from test.helpers import ProviderTestBase
@@ -27,18 +26,20 @@ class CloudObjectStoreServiceTestCase(ProviderTestBase):
 
             containers = self.provider.object_store.list()
 
-            # check iteration
-            iter_containers = list(itertools.islice(
-                self.provider.object_store,
-                len(containers)))
-            self.assertListEqual(iter_containers, containers)
-
             found_containers = [c for c in containers if c.name == name]
             self.assertTrue(
                 len(found_containers) == 1,
                 "List containers does not return the expected container %s" %
                 name)
 
+            # check iteration
+            found_containers = [c for c in self.provider.object_store
+                                if c.name == name]
+            self.assertTrue(
+                len(found_containers) == 1,
+                "Iter containers does not return the expected container %s" %
+                name)
+
             get_container = self.provider.object_store.get(
                 test_container.id)
             self.assertTrue(
@@ -87,9 +88,7 @@ class CloudObjectStoreServiceTestCase(ProviderTestBase):
                 objs = test_container.list()
 
                 # check iteration
-                iter_objs = list(itertools.islice(
-                    test_container,
-                    len(objs)))
+                iter_objs = list(test_container)
                 self.assertListEqual(iter_objs, objs)
 
                 found_objs = [o for o in objs if o.name == obj_name]

+ 1 - 5
test/test_region_service.py

@@ -1,5 +1,3 @@
-import itertools
-
 from cloudbridge.cloud.interfaces import Region
 from test.helpers import ProviderTestBase
 
@@ -18,9 +16,7 @@ class CloudRegionServiceTestCase(ProviderTestBase):
         regions = self.provider.compute.regions.list()
 
         # check iteration
-        iter_regions = list(itertools.islice(
-            self.provider.compute.regions,
-            len(regions)))
+        iter_regions = list(self.provider.compute.regions)
         self.assertListEqual(iter_regions, regions)
 
         for region in regions:

+ 32 - 15
test/test_security_service.py

@@ -1,4 +1,3 @@
-import itertools
 import uuid
 
 from test.helpers import ProviderTestBase
@@ -18,6 +17,22 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
             lambda:
                 self.provider.security.key_pairs.delete(name=kp.name)
         ):
+            # test list method
+            kpl = self.provider.security.key_pairs.list()
+            found_kpl = [i for i in kpl if i.name == name]
+            self.assertTrue(
+                len(found_kpl) == 1,
+                "List keypairs does not return the expected keypair %s" %
+                name)
+
+            # check iteration
+            found_kpl = [i for i in self.provider.security.key_pairs
+                         if i.name == name]
+            self.assertTrue(
+                len(found_kpl) == 1,
+                "Iter keypairs does not return the expected keypair %s" %
+                name)
+
             found_kp = self.provider.security.key_pairs.find(name=name)
             self.assertTrue(
                 found_kp == kp,
@@ -29,13 +44,6 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
                 "Recreating key pair did not return the expected key {0}."
                 .format(name))
         kpl = self.provider.security.key_pairs.list()
-
-        # check iteration
-        iter_key_pairs = list(itertools.islice(
-            self.provider.security.key_pairs,
-            len(kpl)))
-        self.assertListEqual(iter_key_pairs, kpl)
-
         found_kp = [k for k in kpl if k.name == name]
         self.assertTrue(
             len(found_kp) == 0,
@@ -83,6 +91,22 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
         ):
             self.assertEqual(name, sg.description)
 
+            # test list method
+            sgl = self.provider.security.security_groups.list()
+            found_sgl = [i for i in sgl if i.name == name]
+            self.assertTrue(
+                len(found_sgl) == 1,
+                "List security groups does not return the expected group %s" %
+                name)
+
+            # check iteration
+            found_sgl = [i for i in self.provider.security.security_groups
+                         if i.name == name]
+            self.assertTrue(
+                len(found_sgl) == 1,
+                "Iter security groups does not return the expected group %s" %
+                name)
+
             sgl = self.provider.security.security_groups.get(
                 group_names=[
                     sg.name])
@@ -92,13 +116,6 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
                 "List security groups did not return the expected group {0}."
                 .format(name))
         sgl = self.provider.security.security_groups.list()
-
-        # check iteration
-        iter_security_groups = list(itertools.islice(
-            self.provider.security.security_groups,
-            len(sgl)))
-        self.assertListEqual(iter_security_groups, sgl)
-
         found_sg = [g for g in sgl if g.name == name]
         self.assertTrue(
             len(found_sg) == 0,