diff options
author | Lovett, Trevor <trevor.lovett@att.com> | 2019-02-08 15:38:18 -0600 |
---|---|---|
committer | Lovett, Trevor <trevor.lovett@att.com> | 2019-02-08 15:38:18 -0600 |
commit | 293cdf7354a3ef724b8ba9566e71ea29b4273387 (patch) | |
tree | cca6a2dff5aa2ba7e1b59d36c1f8417338a2f100 | |
parent | 1a3d7fad12342e5733d9734ff7ae0d1630287888 (diff) |
[VVP] Improved message on test_base_template_name
Change-Id: I5974ed3b8ff6e20ab747b3e96af37f84a133ecbb
Issue-ID: VVP-141
Signed-off-by: Lovett, Trevor <trevor.lovett@att.com>
3 files changed, 134 insertions, 15 deletions
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 |