aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLovett, Trevor <trevor.lovett@att.com>2020-01-17 12:26:18 -0600
committerLovett, Trevor (tl2972) <tl2972@att.com>2020-01-17 12:27:39 -0600
commitd8ffed96caada0308ac2ee3f4daf90b7aacb5137 (patch)
tree83ab7295bfae93153bf0e544232eca058d9b2d09
parentded5c74ea07eb1541587de1042444fa6b590ddde (diff)
[VVP] Allow base templates to not have resources
Change-Id: I44232d58697ff95b418e9594451cda3c3a90c798 Issue-ID: VVP-361 Signed-off-by: Lovett, Trevor <trevor.lovett@att.com>
-rw-r--r--ice_validator/tests/fixtures/test_heat_template_structure/fail/resources/no_resources.yaml49
-rw-r--r--ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_invalid_keys.yaml (renamed from ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_invalid_keys.yaml)0
-rw-r--r--ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_invalid_keys.yml (renamed from ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_invalid_keys.yml)0
-rw-r--r--ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_no_valid_keys.yaml (renamed from ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_no_valid_keys.yaml)0
-rw-r--r--ice_validator/tests/fixtures/test_heat_template_structure/pass/base.yaml49
-rw-r--r--ice_validator/tests/test_heat_template_structure.py16
-rw-r--r--ice_validator/tests/test_initial_configuration.py24
7 files changed, 111 insertions, 27 deletions
diff --git a/ice_validator/tests/fixtures/test_heat_template_structure/fail/resources/no_resources.yaml b/ice_validator/tests/fixtures/test_heat_template_structure/fail/resources/no_resources.yaml
new file mode 100644
index 0000000..2737b4b
--- /dev/null
+++ b/ice_validator/tests/fixtures/test_heat_template_structure/fail/resources/no_resources.yaml
@@ -0,0 +1,49 @@
+# -*- coding: utf8 -*-
+# ============LICENSE_START=======================================================
+# org.onap.vvp/validation-scripts
+# ===================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the "License");
+# you may not use this software 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.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# 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.
+#
+# ============LICENSE_END============================================
+heat_template_version: 2015-04-30
+
+description: test
+
+parameters:
+ a:
+ type: string
+ description: Name of key-pair to be used for compute instance
+
+outputs:
+ a:
+ description: a value
+ value: { get_param: a }
diff --git a/ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_invalid_keys.yaml b/ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_invalid_keys.yaml
index 4a3313f..4a3313f 100644
--- a/ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_invalid_keys.yaml
+++ b/ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_invalid_keys.yaml
diff --git a/ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_invalid_keys.yml b/ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_invalid_keys.yml
index 4a3313f..4a3313f 100644
--- a/ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_invalid_keys.yml
+++ b/ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_invalid_keys.yml
diff --git a/ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_no_valid_keys.yaml b/ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_no_valid_keys.yaml
index 7ca0e39..7ca0e39 100644
--- a/ice_validator/tests/fixtures/test_heat_template_structure/fail/non_heat_template_no_valid_keys.yaml
+++ b/ice_validator/tests/fixtures/test_heat_template_structure/fail/structure/non_heat_template_no_valid_keys.yaml
diff --git a/ice_validator/tests/fixtures/test_heat_template_structure/pass/base.yaml b/ice_validator/tests/fixtures/test_heat_template_structure/pass/base.yaml
new file mode 100644
index 0000000..2737b4b
--- /dev/null
+++ b/ice_validator/tests/fixtures/test_heat_template_structure/pass/base.yaml
@@ -0,0 +1,49 @@
+# -*- coding: utf8 -*-
+# ============LICENSE_START=======================================================
+# org.onap.vvp/validation-scripts
+# ===================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the "License");
+# you may not use this software 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.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# 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.
+#
+# ============LICENSE_END============================================
+heat_template_version: 2015-04-30
+
+description: test
+
+parameters:
+ a:
+ type: string
+ description: Name of key-pair to be used for compute instance
+
+outputs:
+ a:
+ description: a value
+ value: { get_param: a }
diff --git a/ice_validator/tests/test_heat_template_structure.py b/ice_validator/tests/test_heat_template_structure.py
index 192f45a..da2de5e 100644
--- a/ice_validator/tests/test_heat_template_structure.py
+++ b/ice_validator/tests/test_heat_template_structure.py
@@ -39,9 +39,10 @@
"""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"
@@ -101,15 +102,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")
diff --git a/ice_validator/tests/test_initial_configuration.py b/ice_validator/tests/test_initial_configuration.py
index e4d8b01..13cc2c7 100644
--- a/ice_validator/tests/test_initial_configuration.py
+++ b/ice_validator/tests/test_initial_configuration.py
@@ -176,20 +176,10 @@ def test_05_all_get_param_have_defined_parameter(yaml_file):
@validates("R-90152")
@pytest.mark.base
-def test_06_heat_template_resource_section_has_resources(heat_template):
-
- found_resource = False
-
- with open(heat_template) as fh:
- yml = yaml.load(fh)
-
- resources = yml.get("resources")
- if resources:
- for k1, v1 in yml["resources"].items():
- if not isinstance(v1, dict):
- continue
-
- found_resource = True
- break
-
- assert found_resource, "Heat templates must contain at least one resource"
+def test_06_heat_template_resource_section_has_resources(yaml_file):
+ template = load_yaml(yaml_file)
+ if "resources" not in template:
+ pytest.skip("No resources section")
+ assert (
+ len(template["resources"]) > 0
+ ), "If resources section present, then there must be at least 1 resource defined."