From 1f4df7c7ad27b23773ad9cdbe4db1632ce388cf1 Mon Sep 17 00:00:00 2001 From: "stark, steven" Date: Mon, 17 Dec 2018 12:43:02 -0800 Subject: [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 --- ..._template_parameters_contain_required_fields.py | 29 ++++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'ice_validator/tests/test_heat_template_parameters_contain_required_fields.py') 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 -- cgit 1.2.3-korg