aboutsummaryrefslogtreecommitdiffstats
path: root/ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
diff options
context:
space:
mode:
authorstark, steven <steven.stark@att.com>2018-12-17 12:43:02 -0800
committerstark, steven <steven.stark@att.com>2018-12-17 13:04:00 -0800
commit1f4df7c7ad27b23773ad9cdbe4db1632ce388cf1 (patch)
tree8092104f8be23051ff81c9f71ee34116df4d33ba /ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
parentca9085f0f77d442d3741a8c754e65cc45b6a318d (diff)
[VVP] updating validation scripts in dublin
- adding backlog of new validation scripts for dublin - updating existing tests - removing outdated tests Issue-ID: VVP-123 Change-Id: Ib8260889ac957c1dd28d8ede450fc8edc6fb0ec0 Signed-off-by: stark, steven <steven.stark@att.com>
Diffstat (limited to 'ice_validator/tests/test_heat_template_parameters_contain_required_fields.py')
-rw-r--r--ice_validator/tests/test_heat_template_parameters_contain_required_fields.py29
1 files changed, 18 insertions, 11 deletions
diff --git a/ice_validator/tests/test_heat_template_parameters_contain_required_fields.py b/ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
index 9f0a5a8..c1a9777 100644
--- a/ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
+++ b/ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
@@ -2,7 +2,7 @@
# ============LICENSE_START=======================================================
# org.onap.vvp/validation-scripts
# ===================================================================
-# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
# ===================================================================
#
# Unless otherwise specified, all software contained herein is licensed
@@ -37,6 +37,7 @@
#
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
+from collections import defaultdict
import pytest
from tests import cached_yaml as yaml
@@ -44,13 +45,13 @@ from tests import cached_yaml as yaml
from .helpers import validates
-@validates('R-36772', 'R-44001')
+@validates("R-36772", "R-44001")
def test_heat_template_parameters_contain_required_fields(yaml_file):
- '''
+ """
Check that all parameters in the environment
file have the required fields
- '''
- required_keys = ["type", "description"]
+ """
+ required_keys = {"type", "description"}
with open(yaml_file) as fh:
yml = yaml.load(fh)
@@ -59,11 +60,17 @@ def test_heat_template_parameters_contain_required_fields(yaml_file):
if "parameters" not in yml:
pytest.skip("No parameters specified in the heat template")
- invalid_parameters = []
- for k1, v1 in yml["parameters"].items():
- if not isinstance(v1, dict):
+ invalid_params = defaultdict(list)
+ for param, param_attrs in yml["parameters"].items():
+ if not isinstance(param_attrs, dict):
continue
- if not all(map(lambda v: v in v1, required_keys)):
- invalid_parameters.append(k1)
+ for key in required_keys:
+ if key not in param_attrs:
+ invalid_params[param].append(key)
- assert not set(invalid_parameters)
+ msg = [
+ "Parameter {} is missing required attribute(s): {}".format(k, ", ".join(v))
+ for k, v in invalid_params.items()
+ ]
+ msg = ". ".join(msg)
+ assert not invalid_params, msg