X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_unique_resources_across_all_templates.py;h=63ff618d3c575728415e2e8c975e31a9604ab2d8;hb=ba669ca219cf8bb9dc64deff9f22941be2fb4388;hp=f6a5f3abb223365a15cc7e9e6ab24d60501a597b;hpb=60d5ad7d00eadd6395eca186e6fa76a43df3c6cf;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_unique_resources_across_all_templates.py b/ice_validator/tests/test_unique_resources_across_all_templates.py index f6a5f3a..63ff618 100644 --- a/ice_validator/tests/test_unique_resources_across_all_templates.py +++ b/ice_validator/tests/test_unique_resources_across_all_templates.py @@ -2,7 +2,7 @@ # ============LICENSE_START======================================================= # org.onap.vvp/validation-scripts # =================================================================== -# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed @@ -35,32 +35,37 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # import collections +import os from tests import cached_yaml as yaml from .helpers import validates -@validates('R-16447') +@validates("R-16447") def test_unique_resources_across_all_yaml_files(yaml_files): - ''' + """ Check that all instance names are unique across all yaml files. - ''' - resources_ids = [] + """ + resources_ids = collections.defaultdict(set) for yaml_file in yaml_files: with open(yaml_file) as fh: yml = yaml.load(fh) - if 'resources' not in yml: + if "resources" not in yml: continue - resources_ids.extend(yml['resources'].keys()) + for resource_id in yml["resources"]: + resources_ids[resource_id].add(os.path.split(yaml_file)[1]) - dup_ids = [item - for item, count in collections.Counter(resources_ids).items() - if count > 1] + dup_ids = {r_id: files for r_id, files in resources_ids.items() if len(files) > 1} - assert not dup_ids + msg = "The following resource IDs are duplicated in one or more files: " + errors = [ + "ID ({}) appears in {}.".format(r_id, ", ".join(files)) + for r_id, files in dup_ids.items() + ] + msg += ", ".join(errors) + assert not dup_ids, msg