Add few functional tests for translation
Add few issue sensitive functional tests for new
translation mechanism.
Change-Id: I7b808f314645f752f41dbdf6c0457ea23511bfb7
Closes-bug: #1620859
diff --git a/functional/test_translation.py b/functional/test_translation.py
new file mode 100644
index 0000000..ff20ab5
--- /dev/null
+++ b/functional/test_translation.py
@@ -0,0 +1,117 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from heat_integrationtests.functional import functional_base
+
+template_subnet_old_network = """
+heat_template_version: 2016-10-14
+parameters:
+ net_cidr:
+ type: string
+resources:
+ net:
+ type: OS::Neutron::Net
+ subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ cidr: { get_param: net_cidr }
+ network_id: { get_resource: net }
+"""
+
+template_with_get_attr = """
+heat_template_version: 2016-10-14
+description: Test template to create/update subnet with translation
+parameters:
+ net_cidr:
+ type: string
+resources:
+ net:
+ type: OS::Neutron::Net
+ net_value:
+ type: OS::Heat::Value
+ properties:
+ value: { get_resource: net }
+ subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network: { get_attr: [net_value, value] }
+ cidr: { get_param: net_cidr }
+"""
+
+template_value_from_nested_stack_main = """
+heat_template_version: 2016-10-14
+parameters:
+ flavor:
+ type: string
+ image:
+ type: string
+ public_net:
+ type: string
+resources:
+ network_settings:
+ type: network.yaml
+ properties:
+ public_net: { get_param: public_net }
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: { get_param: flavor }
+ image: { get_param: image }
+ networks: { get_attr: [network_settings, networks] }
+"""
+
+template_value_from_nested_stack_network = """
+heat_template_version: 2016-10-14
+parameters:
+ public_net:
+ type: string
+outputs:
+ networks:
+ value:
+ - uuid: { get_param: public_net }
+"""
+
+
+class TestTranslation(functional_base.FunctionalTestsBase):
+
+ def test_create_update_subnet_old_network(self):
+ # Just create and update where network is translated properly.
+ env = {'parameters': {'net_cidr': '11.11.11.0/24'}}
+ stack_identifier = self.stack_create(
+ template=template_subnet_old_network,
+ environment=env)
+ env = {'parameters': {'net_cidr': '11.11.12.0/24'}}
+ self.update_stack(stack_identifier,
+ template=template_subnet_old_network,
+ environment=env)
+
+ def test_create_update_translation_with_get_attr(self):
+ # Check create and update successful for translation function value.
+ env = {'parameters': {'net_cidr': '11.11.11.0/24'}}
+ stack_identifier = self.stack_create(
+ template=template_with_get_attr,
+ environment=env)
+ env = {'parameters': {'net_cidr': '11.11.12.0/24'}}
+ self.update_stack(stack_identifier,
+ template=template_with_get_attr,
+ environment=env)
+
+ def test_value_from_nested_stack(self):
+ env = {'parameters': {
+ 'flavor': self.conf.minimal_instance_type,
+ 'image': self.conf.minimal_image_ref,
+ 'public_net': self.conf.fixed_network_name
+ }}
+ self.stack_create(
+ template=template_value_from_nested_stack_main,
+ environment=env,
+ files={'network.yaml': template_value_from_nested_stack_network})