From: Clint Byrum Date: Wed, 1 May 2013 22:17:37 +0000 (-0700) Subject: Add test to handle nova BUILD status on create X-Git-Tag: 2014.1~636^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=b9968614d5f7131ce7b1810c9bec7a07e7752ea7;p=openstack-build%2Fheat-build.git Add test to handle nova BUILD status on create Other tests assume nova will return an ACTIVE server on create, which is somewhat unlikely. Fixes bug #1133580 Change-Id: I6ccc079e8978894f7648a6000f74869434c600f6 --- diff --git a/heat/tests/test_instance.py b/heat/tests/test_instance.py index 4c4ba02e..50e3d144 100644 --- a/heat/tests/test_instance.py +++ b/heat/tests/test_instance.py @@ -59,7 +59,7 @@ class instancesTest(HeatTestCase): self.fc = fakes.FakeClient() setup_dummy_db() - def _create_test_instance(self, return_server, name): + def _setup_test_instance(self, return_server, name): stack_name = '%s_stack' % name t = template_format.parse(wp_template) template = parser.Template(t) @@ -89,8 +89,12 @@ class instancesTest(HeatTestCase): userdata=server_userdata, scheduler_hints=None, meta=None, nics=None, availability_zone=None).AndReturn( return_server) - self.m.ReplayAll() + return instance + + def _create_test_instance(self, return_server, name): + instance = self._setup_test_instance(return_server, name) + self.m.ReplayAll() scheduler.TaskRunner(instance.create)() return instance @@ -139,6 +143,21 @@ class instancesTest(HeatTestCase): instance.UPDATE_COMPLETE) self.assertEqual(instance.metadata, {'test': 123}) + def test_instance_status_build(self): + return_server = self.fc.servers.list()[0] + instance = self._setup_test_instance(return_server, + 'test_instance_status_build') + instance.resource_id = 1234 + + # Bind new fake get method which Instance.check_active will call + def activate_status(server): + server.status = 'ACTIVE' + return_server.get = activate_status.__get__(return_server) + self.m.ReplayAll() + + scheduler.TaskRunner(instance.create)() + self.assertEqual(instance.state, instance.CREATE_COMPLETE) + def test_build_nics(self): self.assertEqual(None, instances.Instance._build_nics([])) self.assertEqual(None, instances.Instance._build_nics(None))