diff options
Diffstat (limited to 'ice_validator/tests')
3 files changed, 88 insertions, 13 deletions
diff --git a/ice_validator/tests/fixtures/test_base_template_names/fail/invalid_chars/invalid chars - in name.yaml b/ice_validator/tests/fixtures/test_base_template_names/fail/invalid_chars/invalid chars - in name.yaml new file mode 100644 index 0000000..db25f71 --- /dev/null +++ b/ice_validator/tests/fixtures/test_base_template_names/fail/invalid_chars/invalid chars - in name.yaml @@ -0,0 +1,56 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START======================================================= +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2020 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"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# 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 +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# +--- +description: + base +parameters: + vm_type_volume_name_0: + type: string + vm_type_volume_size_0: + type: number + +resources: + server_0: + type: OS::Nova::Server + properties: + name: {get_param: server_name_0} + +outputs: + vm_type_volume_id_0: + value: {get_resource: vm_type_volume_0} diff --git a/ice_validator/tests/test_base_template_names.py b/ice_validator/tests/test_base_template_names.py index 1159fb6..861843f 100644 --- a/ice_validator/tests/test_base_template_names.py +++ b/ice_validator/tests/test_base_template_names.py @@ -2,7 +2,7 @@ # ============LICENSE_START==================================================== # org.onap.vvp/validation-scripts # =================================================================== -# Copyright © 2019 AT&T Intellectual Property. All rights reserved. +# Copyright © 2020 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed @@ -18,8 +18,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# -# # Unless otherwise specified, all documentation contained herein is licensed # under the Creative Commons License, Attribution 4.0 Intl. (the "License"); # you may not use this documentation except in compliance with the License. @@ -34,12 +32,11 @@ # limitations under the License. # # ============LICENSE_END============================================ -# -# from os import listdir from os import path import re +from pathlib import Path import pytest @@ -50,18 +47,36 @@ from .helpers import validates RE_BASE = re.compile(r"(^base$)|(^base_)|(_base_)|(_base$)") -@validates("R-37028", "R-87485", "R-81339", "R-87247", "R-76057") -def test_base_template_names(template_dir): - """ - Check all base templates have a filename that includes "_base_". - """ - filenames = [ +def list_filenames(template_dir): + return [ f for f in listdir(template_dir) if path.isfile(path.join(template_dir, f)) and path.splitext(f)[-1] in [".yaml", ".yml"] ] + +@validates("R-81339", "R-87247", "R-76057") +def test_template_names_valid_characters(template_dir): + filenames = list_filenames(template_dir) + errors = [] + for f in filenames: + stem = Path(f).stem + if not stem.replace("_", "").isalnum(): + errors.append(f) + assert not errors, ( + "The following Heat template names include characters other than " + "alphanumerics and underscores: {}" + ).format(", ".join(errors)) + + +@validates("R-37028", "R-87485", "R-81339", "R-87247", "R-76057") +def test_base_template_names(template_dir): + """ + Check all base templates have a filename that includes "_base_". + """ + filenames = list_filenames(template_dir) + if not filenames and listdir(template_dir): pytest.skip("Nested directory detected. Let that test fail instead.") diff --git a/ice_validator/tests/test_heat_template_structure.py b/ice_validator/tests/test_heat_template_structure.py index 1b85dac..7157153 100644 --- a/ice_validator/tests/test_heat_template_structure.py +++ b/ice_validator/tests/test_heat_template_structure.py @@ -55,7 +55,9 @@ def test_heat_template_structure_contains_heat_template_version(yaml_file): Check that all heat templates have the required sections """ template = load_yaml(yaml_file) - assert "heat_template_version" in template, "This template must contain a heat_template_version section" + assert ( + "heat_template_version" in template + ), "This template must contain a heat_template_version section" @validates("R-39402") @@ -75,7 +77,9 @@ def test_heat_template_structure_contains_parameters(yaml_file): if is_base_module(yaml_file): pytest.skip("Not applicable to base modules") template = load_yaml(yaml_file) - assert "parameters" in template and len(template["parameters"].keys()), "This template must contain a parameters section" + assert "parameters" in template and len( + template["parameters"].keys() + ), "This template must contain a parameters section" @validates("R-23664") |