X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_heat_parameter_section.py;h=dbb0d049cc3a2284ce3d08c86c1e473125f41152;hb=0c4e64d87728b89aa9cd4d41d738f5bfe64ceee3;hp=2aab7d37334b9e078f2ea5d52e6943d1a5e8c78f;hpb=e99347bb14318a57307e2809c3d9577fc29bcb68;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_heat_parameter_section.py b/ice_validator/tests/test_heat_parameter_section.py index 2aab7d3..dbb0d04 100644 --- a/ice_validator/tests/test_heat_parameter_section.py +++ b/ice_validator/tests/test_heat_parameter_section.py @@ -1,12 +1,12 @@ # -*- coding: utf8 -*- -# ============LICENSE_START======================================================= +# ============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”); +# 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 # @@ -21,7 +21,7 @@ # # # Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +# 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 # @@ -35,48 +35,29 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # -from .helpers import validates -import pytest -import re -import yaml - -# one or more (alphanumeric or underscore) -RE_VALID_PARAMETER_NAME = re.compile(r'[\w_]+$') +"""parameters +""" -def test_parameter_valid_keys(yaml_file): - ''' - Make sure each parameter is a dict and only contain - valid keys - ''' - key_values = ["type", "label", "description", - "hidden", "constraints", "immutable"] +import re - with open(yaml_file) as fh: - yml = yaml.load(fh) +import pytest +from tests import cached_yaml as yaml - # skip if parameters are not defined - if "parameters" not in yml: - pytest.skip("No parameters specified in the heat template") +from .helpers import validates - invalid_params = [] - for v1 in yml["parameters"].values(): - if not isinstance(v1, dict): - continue - detected_keys = set(v1) & set(key_values) - if set(v1) != set(detected_keys): - invalid_params.append(str(v1)) +VERSION = "1.0.0" - assert not set(invalid_params) +# one or more (alphanumeric or underscore) +RE_VALID_PARAMETER_NAME = re.compile(r"[\w_]+$") -@validates('R-90526') +@validates("R-90526") def test_default_values(yaml_file): - ''' + """ Make sure no default values are set for any parameter. - ''' + """ with open(yaml_file) as fh: yml = yaml.load(fh) @@ -84,23 +65,26 @@ def test_default_values(yaml_file): if "parameters" not in yml: pytest.skip("No parameters specified in the heat template") - invalid_params = [] - for v1 in yml["parameters"].values(): + invalid_params = set() + for param, v1 in yml["parameters"].items(): if not isinstance(v1, dict): continue - if any(k == 'default' for k in v1): - invalid_params.append(str(v1)) + if any(k == "default" for k in v1): + invalid_params.add(param) - assert not set(invalid_params) + msg = "The following parameters specify a default: {}".format( + ", ".join(invalid_params) + ) + assert not invalid_params, msg -@validates('R-25877') +@validates("R-25877") def test_parameter_names(yaml_file): - ''' + """ A VNF's Heat Orchestration Template's parameter name (i.e., ) **MUST** contain only alphanumeric characters and underscores ('_'). - ''' + """ with open(yaml_file) as fh: yml = yaml.load(fh) @@ -108,8 +92,7 @@ def test_parameter_names(yaml_file): if "parameters" not in yml: pytest.skip("No parameters specified in the heat template") - for key in yml['parameters']: - assert RE_VALID_PARAMETER_NAME.match(key), ( - '%s parameter "%s" not alphanumeric or underscore' % ( - yaml_file, - key)) + for key in yml["parameters"]: + assert RE_VALID_PARAMETER_NAME.match( + key + ), '%s parameter "%s" not alphanumeric or underscore' % (yaml_file, key)