Aligned test with updated R-610030
[vvp/validation-scripts.git] / ice_validator / tests / test_heat_template_structure.py
index 192f45a..7157153 100644 (file)
 
 """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"
 
@@ -53,15 +54,10 @@ def test_heat_template_structure_contains_heat_template_version(yaml_file):
     """
     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")
@@ -69,15 +65,8 @@ def test_heat_template_structure_contains_description(yaml_file):
     """
     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")
@@ -85,15 +74,12 @@ def test_heat_template_structure_contains_parameters(yaml_file):
     """
     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")
@@ -101,15 +87,10 @@ def test_heat_template_structure_contains_resources(heat_template):
     """
     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")