| # 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 test_get_stack_template(self): |
| stack_identifier = self.stack_create( |
| template=self.template |
| ) |
| template_from_client = self.client.stacks.template(stack_identifier) |
| self.assertEqual(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", "2016-10-14", "newton", |
| "2017-02-24", "ocata", |
| "2017-09-01", "pike"] |
| 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']) |