X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_base_template_names.py;h=1159fb67015124ff9d3923414d0db0489f2803cc;hb=9c7ab065e6477c035ffc6addf384abcef2e9588a;hp=dbc881592800c2a03c8d7048c4dc7a3d8afdbf1c;hpb=60d5ad7d00eadd6395eca186e6fa76a43df3c6cf;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_base_template_names.py b/ice_validator/tests/test_base_template_names.py index dbc8815..1159fb6 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 @@ -35,45 +35,58 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # -"""base template names -""" - from os import listdir from os import path import re +import pytest + 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$)') +RE_BASE = re.compile(r"(^base$)|(^base_)|(_base_)|(_base$)") -@validates('R-37028', 'R-87485', 'R-81339', 'R-87247', 'R-76057') +@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_". - ''' - 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']] + """ + filenames = [ + f + for f in listdir(template_dir) + if path.isfile(path.join(template_dir, f)) + and path.splitext(f)[-1] in [".yaml", ".yml"] + ] + + if not filenames and listdir(template_dir): + pytest.skip("Nested directory detected. Let that test fail instead.") + + 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