Move test_create_config_prop_validation to functional
Part of blueprint decouple-nested
Change-Id: I3de435c2bc551fdc8ba00f069975d68d239666f1
diff --git a/functional/test_instance_group.py b/functional/test_instance_group.py
index 5f76747..016ae95 100644
--- a/functional/test_instance_group.py
+++ b/functional/test_instance_group.py
@@ -10,7 +10,11 @@
# License for the specific language governing permissions and limitations
# under the License.
+import copy
import logging
+import yaml
+
+from heatclient import exc
from heat_integrationtests.common import test
@@ -116,6 +120,31 @@
stack = self.client.stacks.get(stack_identifier)
self.assert_instance_count(stack, 4)
+ def test_create_config_prop_validation(self):
+ """Make sure that during a group create the instance
+ properties are validated. And an error causes the group to fail.
+ """
+ stack_name = self._stack_rand_name()
+
+ # add a property without a default and don't provide a value.
+ # we use this to make the instance fail on a property validation
+ # error.
+ broken = yaml.load(copy.copy(self.instance_template))
+ broken['parameters']['no_default'] = {'type': 'string'}
+ files = {'provider.yaml': yaml.dump(broken)}
+ env = {'resource_registry': {'AWS::EC2::Instance': 'provider.yaml'},
+ 'parameters': {'size': 4,
+ 'image': self.conf.image_ref,
+ 'keyname': self.conf.keypair_name,
+ 'flavor': self.conf.instance_type}}
+
+ # now with static nested stack validation, this gets raised quickly.
+ excp = self.assertRaises(exc.HTTPBadRequest, self.client.stacks.create,
+ stack_name=stack_name, template=self.template,
+ files=files, disable_rollback=True,
+ parameters={}, environment=env)
+ self.assertIn('Property no_default not assigned', str(excp))
+
def test_size_updates_work(self):
files = {'provider.yaml': self.instance_template}
env = {'resource_registry': {'AWS::EC2::Instance': 'provider.yaml'},