X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_heat_parameter_section.py;h=a2264167541a9126d4caa67fe951fb5e4bef151d;hb=60d5ad7d00eadd6395eca186e6fa76a43df3c6cf;hp=c5d0b4c301c08984665dbfbf3f680394373a5063;hpb=655f39713cca2595a812ccd60cc738301aef8b2f;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 c5d0b4c..a226416 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. +# 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 # @@ -38,18 +38,27 @@ # ECOMP is a trademark and service mark of AT&T Intellectual Property. # +"""parameters +""" + +import re + import pytest -import yaml +from tests import cached_yaml as yaml + +from .helpers import validates + +VERSION = '1.0.0' + +# one or more (alphanumeric or underscore) +RE_VALID_PARAMETER_NAME = re.compile(r'[\w_]+$') -def test_parameter_valid_keys(yaml_file): +@validates('R-90526') +def test_default_values(yaml_file): ''' - Make sure each parameter is a dict and only contain - valid keys + Make sure no default values are set for any parameter. ''' - key_values = ["type", "label", "description", - "hidden", "constraints", "immutable"] - with open(yaml_file) as fh: yml = yaml.load(fh) @@ -61,16 +70,18 @@ def test_parameter_valid_keys(yaml_file): 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): + if any(k == 'default' for k in v1): invalid_params.append(str(v1)) assert not set(invalid_params) -def test_default_values(yaml_file): +@validates('R-25877') +def test_parameter_names(yaml_file): ''' - Make sure no default values are set for any parameter. + 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) @@ -79,11 +90,9 @@ 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(): - if not isinstance(v1, dict): - continue - if any(k == 'default' for k in v1): - invalid_params.append(str(v1)) + for key in yml['parameters']: + assert RE_VALID_PARAMETER_NAME.match(key), ( + '%s parameter "%s" not alphanumeric or underscore' % ( + yaml_file, + key)) - assert not set(invalid_params)