"""Test heat template structure
"""
+import pytest
from tests import cached_yaml as yaml
-from .helpers import validates
+from .helpers import validates, is_base_module, load_yaml
VERSION = "1.2.0"
"""
Check that all heat templates have the required sections
"""
- required_key_values = ["heat_template_version"]
-
- with open(yaml_file) as fh:
- yml = yaml.load(fh)
- assert all(
- [k in yml for k in required_key_values]
- ), "{} doesn't contain the {} section, but it is required".format(
- yaml_file, required_key_values[0]
- )
+ template = load_yaml(yaml_file)
+ assert "heat_template_version" in template, "This template must contain a heat_template_version section"
@validates("R-39402")
"""
Check that all heat templates have the required sections
"""
- required_key_values = ["description"]
-
- with open(yaml_file) as fh:
- yml = yaml.load(fh)
- assert all(
- [k in yml for k in required_key_values]
- ), "{} doesn't contain the {} section, but it is required".format(
- yaml_file, required_key_values[0]
- )
+ template = load_yaml(yaml_file)
+ assert "description" in template, "This template must contain a description section"
@validates("R-35414")
"""
Check that all heat templates have the required sections
"""
- required_key_values = ["parameters"]
-
- with open(yaml_file) as fh:
- yml = yaml.load(fh)
- assert all(
- [k in yml for k in required_key_values]
- ), "{} doesn't contain the {} section, but it is required".format(
- yaml_file, required_key_values[0]
- )
+ if is_base_module(yaml_file):
+ pytest.skip("Not applicable to base modules")
+ template = load_yaml(yaml_file)
+ assert "parameters" in template and len(template["parameters"].keys()), "This template must contain a parameters section"
@validates("R-23664")
"""
Check that all heat templates have the required sections
"""
- required_key_values = ["resources"]
-
- with open(heat_template) as fh:
- yml = yaml.load(fh)
- assert all(
- [k in yml for k in required_key_values]
- ), "{} doesn't contain the {} section, but it is required".format(
- heat_template, required_key_values[0]
- )
+ if is_base_module(heat_template):
+ pytest.skip("Not applicable to base modules")
+ template = load_yaml(heat_template)
+ assert "resources" in template, "This template must contain a resources section"
@validates("R-11441")