diff --git a/heat/tests/autoscaling/test_scaling_group.py b/heat/tests/autoscaling/test_scaling_group.py index 1353c57fe..01d4494bb 100644 --- a/heat/tests/autoscaling/test_scaling_group.py +++ b/heat/tests/autoscaling/test_scaling_group.py @@ -19,6 +19,7 @@ from heat.common import exception from heat.common import grouputils from heat.common import template_format from heat.engine.clients.os import nova +from heat.engine.resources.aws import instance from heat.engine import rsrc_defn from heat.engine import scheduler from heat.tests.autoscaling import inline_templates @@ -392,6 +393,31 @@ class TestGroupCrud(common.HeatTestCase): self.group.child_template.assert_called_once_with() self.group.create_with_template.assert_called_once_with('{}') + def test_scaling_group_create_error(self): + t = template_format.parse(as_template) + stack = utils.parse_stack(t, params=inline_templates.as_params) + + self.m.StubOutWithMock(instance.Instance, 'handle_create') + self.m.StubOutWithMock(instance.Instance, 'check_create_complete') + instance.Instance.handle_create().AndRaise(Exception) + + self.m.ReplayAll() + + conf = stack['LaunchConfig'] + self.assertIsNone(conf.validate()) + scheduler.TaskRunner(conf.create)() + self.assertEqual((conf.CREATE, conf.COMPLETE), conf.state) + + rsrc = stack['WebServerGroup'] + self.assertIsNone(rsrc.validate()) + self.assertRaises(exception.ResourceFailure, + scheduler.TaskRunner(rsrc.create)) + self.assertEqual((rsrc.CREATE, rsrc.FAILED), rsrc.state) + + self.assertEqual([], grouputils.get_members(rsrc)) + + self.m.VerifyAll() + def test_handle_update_desired_cap(self): self.group._try_rolling_update = mock.Mock(return_value=None) self.group.adjust = mock.Mock(return_value=None) diff --git a/heat/tests/test_autoscaling.py b/heat/tests/test_autoscaling.py index 3316b6805..6f73e55f8 100644 --- a/heat/tests/test_autoscaling.py +++ b/heat/tests/test_autoscaling.py @@ -186,34 +186,6 @@ class AutoScalingTest(common.HeatTestCase): for x in range(nmeta): resource.Resource.metadata_set(expected).AndReturn(None) - def test_scaling_group_create_error(self): - t = template_format.parse(as_template) - stack = utils.parse_stack(t, params=self.params) - - self.m.StubOutWithMock(instance.Instance, 'handle_create') - self.m.StubOutWithMock(instance.Instance, 'check_create_complete') - instance.Instance.handle_create().AndRaise(Exception) - self.stub_ImageConstraint_validate() - self.stub_FlavorConstraint_validate() - self.stub_SnapshotConstraint_validate() - - self.m.ReplayAll() - - conf = stack['LaunchConfig'] - self.assertIsNone(conf.validate()) - scheduler.TaskRunner(conf.create)() - self.assertEqual((conf.CREATE, conf.COMPLETE), conf.state) - - rsrc = stack['WebServerGroup'] - self.assertIsNone(rsrc.validate()) - self.assertRaises(exception.ResourceFailure, - scheduler.TaskRunner(rsrc.create)) - self.assertEqual((rsrc.CREATE, rsrc.FAILED), rsrc.state) - - self.assertEqual([], grouputils.get_members(rsrc)) - - self.m.VerifyAll() - def test_lb_reload_static_resolve(self): t = template_format.parse(as_template) properties = t['Resources']['ElasticLoadBalancer']['Properties']