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'},