Code Review
/
vvp
/
validation-scripts.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
change if bad to assert not bad, message
[vvp/validation-scripts.git]
/
ice_validator
/
tests
/
test_unique_resources_across_all_templates.py
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
2d05147
..
63ff618
100644
(file)
--- a/
ice_validator/tests/test_unique_resources_across_all_templates.py
+++ b/
ice_validator/tests/test_unique_resources_across_all_templates.py
@@
-6,7
+6,7
@@
# ===================================================================
#
# Unless otherwise specified, all software contained herein is licensed
# ===================================================================
#
# 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
#
# 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
#
#
# 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
#
# you may not use this documentation except in compliance with the License.
# You may obtain a copy of the License at
#
@@
-35,29
+35,37
@@
#
# ============LICENSE_END============================================
#
#
# ============LICENSE_END============================================
#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
#
-from .helpers import validates
-import yaml
+
import collections
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):
def test_unique_resources_across_all_yaml_files(yaml_files):
- '''
+ """
Check that all instance names are unique
across all 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)
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
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