X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_heat_parameter_section.py;h=dde4176295266a307df9fe167447ab7390c5fc48;hb=f5edc06be0d8bedeb0904b348ba5e3e67c74f186;hp=7559ee69ba0a70191de2de834d053b1d241226d5;hpb=cc21b8b08b6dbcec577bfb26ff397ac899da8002;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 7559ee6..dde4176 100644 --- a/ice_validator/tests/test_heat_parameter_section.py +++ b/ice_validator/tests/test_heat_parameter_section.py @@ -2,11 +2,11 @@ # ============LICENSE_START======================================================= # org.onap.vvp/validation-scripts # =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# Copyright © 2018 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 # @@ -37,18 +37,21 @@ # # 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_]+$") + 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"] + """ + key_values = ["type", "label", "description", "hidden", "constraints", "immutable"] with open(yaml_file) as fh: yml = yaml.load(fh) @@ -63,15 +66,16 @@ def test_parameter_valid_keys(yaml_file): continue detected_keys = set(v1) & set(key_values) if set(v1) != set(detected_keys): - invalid_params.append(v1) + invalid_params.append(str(v1)) assert not set(invalid_params) +@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) @@ -83,7 +87,27 @@ def test_default_values(yaml_file): for v1 in yml["parameters"].values(): if not isinstance(v1, dict): continue - if any(k == 'default' for k in v1): - invalid_params.append(v1) + if any(k == "default" for k in v1): + invalid_params.append(str(v1)) assert not set(invalid_params) + + +@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) + + # skip if parameters are not defined + 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)