X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_base_template_names.py;h=1159fb67015124ff9d3923414d0db0489f2803cc;hb=0c4e64d87728b89aa9cd4d41d738f5bfe64ceee3;hp=d3fd7b4496c79faef52fa2e06d245d57f31552ce;hpb=655f39713cca2595a812ccd60cc738301aef8b2f;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 d3fd7b4..1159fb6 100644 --- a/ice_validator/tests/test_base_template_names.py +++ b/ice_validator/tests/test_base_template_names.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 © 2019 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 # @@ -35,32 +35,58 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # from os import listdir from os import path +import re + +import pytest + from .helpers import check_basename_ending +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_". - ''' - 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 (filename.endswith("_base") or - filename.startswith("base_") or - filename == "base" or - filename.find("_base_") > 0): - base_template_count += 1 - assert base_template_count == 1 + 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