From 293cdf7354a3ef724b8ba9566e71ea29b4273387 Mon Sep 17 00:00:00 2001 From: "Lovett, Trevor" Date: Fri, 8 Feb 2019 15:38:18 -0600 Subject: [PATCH] [VVP] Improved message on test_base_template_name Change-Id: I5974ed3b8ff6e20ab747b3e96af37f84a133ecbb Issue-ID: VVP-141 Signed-off-by: Lovett, Trevor --- .../fail/multiple_bases/base_well_named.yaml | 56 ++++++++++++++++++++++ .../fail/multiple_bases/well_base_named.yaml | 56 ++++++++++++++++++++++ ice_validator/tests/test_base_template_names.py | 37 ++++++++------ 3 files changed, 134 insertions(+), 15 deletions(-) create mode 100644 ice_validator/tests/fixtures/test_base_template_names/fail/multiple_bases/base_well_named.yaml create mode 100644 ice_validator/tests/fixtures/test_base_template_names/fail/multiple_bases/well_base_named.yaml diff --git a/ice_validator/tests/fixtures/test_base_template_names/fail/multiple_bases/base_well_named.yaml b/ice_validator/tests/fixtures/test_base_template_names/fail/multiple_bases/base_well_named.yaml new file mode 100644 index 0000000..ac42973 --- /dev/null +++ b/ice_validator/tests/fixtures/test_base_template_names/fail/multiple_bases/base_well_named.yaml @@ -0,0 +1,56 @@ +# -*- coding: utf8 -*- +# ============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"); +# 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/fixtures/test_base_template_names/fail/multiple_bases/well_base_named.yaml b/ice_validator/tests/fixtures/test_base_template_names/fail/multiple_bases/well_base_named.yaml new file mode 100644 index 0000000..ac42973 --- /dev/null +++ b/ice_validator/tests/fixtures/test_base_template_names/fail/multiple_bases/well_base_named.yaml @@ -0,0 +1,56 @@ +# -*- coding: utf8 -*- +# ============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"); +# 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 3553a10..9bbf165 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 © 2017 AT&T Intellectual Property. All rights reserved. +# Copyright © 2019 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed @@ -37,9 +37,6 @@ # # -"""base template names -""" - from os import listdir from os import path import re @@ -47,9 +44,7 @@ import re from .helpers import check_basename_ending from .helpers import validates -VERSION = "1.2.0" -# is 'base', starts with 'base_', contains '_base_', ends with '_base' RE_BASE = re.compile(r"(^base$)|(^base_)|(_base_)|(_base$)") @@ -58,23 +53,35 @@ def test_base_template_names(template_dir): """ Check all base templates have a filename that includes "_base_". """ - base_template_count = 0 filenames = [ f for f in listdir(template_dir) if path.isfile(path.join(template_dir, f)) and path.splitext(f)[-1] in [".yaml", ".yml"] ] + + base_modules = [] for filename in filenames: - filename = path.splitext(filename)[0] + basename = path.splitext(filename)[0] # volume templates are tied to their parent naming wise - if check_basename_ending("volume", filename): + if check_basename_ending("volume", basename): continue - if RE_BASE.search(filename.lower()): - base_template_count += 1 - assert base_template_count == 1, 'must be 1 "*_base_*" in %s not %d' % ( - filenames, - base_template_count, - ) + if RE_BASE.search(basename.lower()): + base_modules.append(filename) + + if not base_modules: + msg = ( + "No base module detected in the following files " + "from the template directory: {}" + ).format(", ".join(filenames)) + elif len(base_modules) > 1: + msg = ( + "Multiple base modules detected in the template " + "directory, but only one is allowed: {}" + ).format(", ".join(base_modules)) + else: + msg = "" + + assert len(base_modules) == 1, msg -- 2.16.6