浏览代码

Make sure resources are deleted in the same order they are created.

Nuwan Goonasekera 9 年之前
父节点
当前提交
8a6ccaee11
共有 4 个文件被更改,包括 64 次插入33 次删除
  1. 13 6
      test/test_block_store_service.py
  2. 20 12
      test/test_compute_service.py
  3. 7 3
      test/test_image_service.py
  4. 24 12
      test/test_security_service.py

+ 13 - 6
test/test_block_store_service.py

@@ -98,11 +98,14 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase):
         instance_name = "CBVolOps-{0}-{1}".format(
             self.provider.name,
             uuid.uuid4())
-        net, subnet = helpers.create_test_network(self.provider, instance_name)
-        test_instance = helpers.get_test_instance(self.provider, instance_name,
-                                                  subnet=subnet)
+        net = None
+        test_instance = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 test_instance, net)):
+            net, subnet = helpers.create_test_network(
+                self.provider, instance_name)
+            test_instance = helpers.get_test_instance(
+                self.provider, instance_name, subnet=subnet)
             name = "CBUnitTestAttachVol-{0}".format(uuid.uuid4())
             test_vol = self.provider.block_store.volumes.create(
                 name, 1, test_instance.zone_id)
@@ -126,11 +129,15 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase):
             self.provider.name,
             uuid.uuid4())
         vol_desc = 'newvoldesc1'
-        net, subnet = helpers.create_test_network(self.provider, instance_name)
-        test_instance = helpers.get_test_instance(self.provider, instance_name,
-                                                  subnet=subnet)
+        test_instance = None
+        net = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 test_instance, net)):
+            net, subnet = helpers.create_test_network(
+                self.provider, instance_name)
+            test_instance = helpers.get_test_instance(
+                self.provider, instance_name, subnet=subnet)
+
             name = "CBUnitTestVolProps-{0}".format(uuid.uuid4())
             test_vol = self.provider.block_store.volumes.create(
                 name, 1, test_instance.zone_id, description=vol_desc)

+ 20 - 12
test/test_compute_service.py

@@ -20,11 +20,14 @@ class CloudComputeServiceTestCase(ProviderTestBase):
         name = "CBInstCrud-{0}-{1}".format(
             self.provider.name,
             uuid.uuid4())
-        net, subnet = helpers.create_test_network(self.provider, name)
-        inst = helpers.get_test_instance(self.provider, name, subnet=subnet)
-
+        inst = None
+        net = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 inst, net)):
+            net, subnet = helpers.create_test_network(self.provider, name)
+            inst = helpers.get_test_instance(self.provider, name,
+                                             subnet=subnet)
+
             all_instances = self.provider.compute.instances.list()
 
             list_instances = [i for i in all_instances if i.name == name]
@@ -94,17 +97,22 @@ class CloudComputeServiceTestCase(ProviderTestBase):
         name = "CBInstProps-{0}-{1}".format(
             self.provider.name,
             uuid.uuid4())
-        net, subnet = helpers.create_test_network(self.provider, name)
-        kp = self.provider.security.key_pairs.create(name=name)
-        sg = self.provider.security.security_groups.create(
-            name=name, description=name, network_id=net.id)
-        test_instance = helpers.get_test_instance(self.provider,
-                                                  name, key_pair=kp,
-                                                  security_groups=[sg],
-                                                  subnet=subnet)
 
+        test_instance = None
+        net = None
+        sg = None
+        kp = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 test_instance, net, sg, kp)):
+            net, subnet = helpers.create_test_network(self.provider, name)
+            kp = self.provider.security.key_pairs.create(name=name)
+            sg = self.provider.security.security_groups.create(
+                name=name, description=name, network_id=net.id)
+            test_instance = helpers.get_test_instance(self.provider,
+                                                      name, key_pair=kp,
+                                                      security_groups=[sg],
+                                                      subnet=subnet)
+
             self.assertTrue(
                 test_instance.id in repr(test_instance),
                 "repr(obj) should contain the object id so that the object"
@@ -306,7 +314,7 @@ class CloudComputeServiceTestCase(ProviderTestBase):
 
                     with helpers.cleanup_action(lambda:
                                                 helpers.delete_test_instance(
-                                                    inst, net)):
+                                                    inst)):
                         try:
                             inst.wait_till_ready()
                         except WaitStateException as e:

+ 7 - 3
test/test_image_service.py

@@ -22,11 +22,15 @@ class CloudImageServiceTestCase(ProviderTestBase):
         instance_name = "CBImageTest-{0}-{1}".format(
             self.provider.name,
             uuid.uuid4())
-        net, subnet = helpers.create_test_network(self.provider, instance_name)
-        test_instance = helpers.get_test_instance(self.provider, instance_name,
-                                                  subnet=subnet)
+        test_instance = None
+        net = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 test_instance, net)):
+            net, subnet = helpers.create_test_network(
+                self.provider, instance_name)
+            test_instance = helpers.get_test_instance(
+                self.provider, instance_name, subnet=subnet)
+
             name = "CBUnitTestListImg-{0}".format(uuid.uuid4())
             test_image = test_instance.create_image(name)
 

+ 24 - 12
test/test_security_service.py

@@ -106,11 +106,14 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
     @helpers.skipIfNoService(['security.security_groups'])
     def test_crud_security_group_service(self):
         name = 'CBTestSecurityGroupA-{0}'.format(uuid.uuid4())
-        net, _ = helpers.create_test_network(self.provider, name)
-        sg = self.provider.security.security_groups.create(
-            name=name, description=name, network_id=net.id)
+        net = None
+        sg = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 network=net, security_group=sg)):
+            net, _ = helpers.create_test_network(self.provider, name)
+            sg = self.provider.security.security_groups.create(
+                name=name, description=name, network_id=net.id)
+
             self.assertEqual(name, sg.description)
 
             # test list method
@@ -162,11 +165,14 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
     def test_security_group(self):
         """Test for proper creation of a security group."""
         name = 'CBTestSecurityGroupB-{0}'.format(uuid.uuid4())
-        net, _ = helpers.create_test_network(self.provider, name)
-        sg = self.provider.security.security_groups.create(
-            name=name, description=name, network_id=net.id)
+        net = None
+        sg = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 network=net, security_group=sg)):
+            net, _ = helpers.create_test_network(self.provider, name)
+            sg = self.provider.security.security_groups.create(
+                name=name, description=name, network_id=net.id)
+
             rule = sg.add_rule(ip_protocol='tcp', from_port=1111, to_port=1111,
                                cidr_ip='0.0.0.0/0')
             found_rule = sg.get_rule(ip_protocol='tcp', from_port=1111,
@@ -219,11 +225,15 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
                 "Value security_group is invalid for parameter.")
 
         name = 'CBTestSecurityGroupC-{0}'.format(uuid.uuid4())
-        net, _ = helpers.create_test_network(self.provider, name)
-        sg = self.provider.security.security_groups.create(
-            name=name, description=name, network_id=net.id)
+        net = None
+        sg = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 network=net, security_group=sg)):
+
+            net, _ = helpers.create_test_network(self.provider, name)
+            sg = self.provider.security.security_groups.create(
+                name=name, description=name, network_id=net.id)
+
             rule = sg.add_rule(ip_protocol='tcp', from_port=1111, to_port=1111,
                                cidr_ip='0.0.0.0/0')
             # attempting to add the same rule twice should succeed
@@ -238,11 +248,13 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
     def test_security_group_group_rule(self):
         """Test for proper creation of a security group rule."""
         name = 'CBTestSecurityGroupD-{0}'.format(uuid.uuid4())
-        net, _ = helpers.create_test_network(self.provider, name)
-        sg = self.provider.security.security_groups.create(
-            name=name, description=name, network_id=net.id)
+        net = None
+        sg = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
                 network=net, security_group=sg)):
+            net, _ = helpers.create_test_network(self.provider, name)
+            sg = self.provider.security.security_groups.create(
+                name=name, description=name, network_id=net.id)
             self.assertTrue(
                 len(sg.rules) == 0,
                 "Expected no security group group rule. Got {0}."