Add tests for heat template apis
This patch covers 4 template api calls -
1. Get stack template
2. List template versions
3. List resource types
4. Show resource schema
Change-Id: I85b16b8893264d1313e2e184011dd0ddfdaa4349
diff --git a/functional/test_templates.py b/functional/test_templates.py
new file mode 100644
index 0000000..dfc9c4f
--- /dev/null
+++ b/functional/test_templates.py
@@ -0,0 +1,72 @@
+# 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
+
+
+class TemplateAPITest(functional_base.FunctionalTestsBase):
+ """This will test the following template calls:
+
+ 1. Get the template content for the specific stack
+ 2. List template versions
+ 3. List resource types
+ 4. Show resource details for OS::Heat::TestResource
+ """
+
+ template = {
+ 'heat_template_version': '2014-10-16',
+ 'description': 'Test Template APIs',
+ 'resources': {
+ 'test1': {
+ 'type': 'OS::Heat::TestResource',
+ 'properties': {
+ 'update_replace': False,
+ 'wait_secs': 0,
+ 'value': 'Test1',
+ 'fail': False,
+ }
+ }
+ }
+ }
+
+ def setUp(self):
+ super(TemplateAPITest, self).setUp()
+
+ def test_get_stack_template(self):
+ stack_identifier = self.stack_create(
+ template=self.template
+ )
+ template_from_client = self.client.stacks.template(stack_identifier)
+ self.assertDictEqual(self.template, template_from_client)
+
+ def test_template_version(self):
+ template_versions = self.client.template_versions.list()
+ supported_template_versions = ["2013-05-23", "2014-10-16",
+ "2015-04-30", "2015-10-15",
+ "2012-12-12", "2010-09-09",
+ "2016-04-08"]
+ for template in template_versions:
+ self.assertIn(template.version.split(".")[1],
+ supported_template_versions)
+
+ def test_resource_types(self):
+ resource_types = self.client.resource_types.list()
+ self.assertTrue(any(resource.resource_type == "OS::Heat::TestResource"
+ for resource in resource_types))
+
+ def test_show_resource_template(self):
+ resource_details = self.client.resource_types.get(
+ resource_type="OS::Heat::TestResource"
+ )
+ self.assertEqual("OS::Heat::TestResource",
+ resource_details['resource_type'])