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
Merge "Remove unnecessary check for pytest.skip"
[vvp/validation-scripts.git]
/
ice_validator
/
tests
/
test_heat_template_parameters_contain_required_fields.py
diff --git
a/ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
b/ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
index
1cfc4ce
..
c6f170a
100644
(file)
--- a/
ice_validator/tests/test_heat_template_parameters_contain_required_fields.py
+++ b/
ice_validator/tests/test_heat_template_parameters_contain_required_fields.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,19
+35,22
@@
#
# ============LICENSE_END============================================
#
#
# ============LICENSE_END============================================
#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
#
+from collections import defaultdict
-import yaml
import pytest
import pytest
+from tests import cached_yaml as yaml
+from .helpers import validates
+
+@validates("R-36772", "R-44001")
def test_heat_template_parameters_contain_required_fields(yaml_file):
def test_heat_template_parameters_contain_required_fields(yaml_file):
- '''
+ """
Check that all parameters in the environment
file have the required fields
Check that all parameters in the environment
file have the required fields
- '''
- required_keys =
["type", "description"]
+ """
+ required_keys =
{"type", "description"}
with open(yaml_file) as fh:
yml = yaml.load(fh)
with open(yaml_file) as fh:
yml = yaml.load(fh)
@@
-56,11
+59,17
@@
def test_heat_template_parameters_contain_required_fields(yaml_file):
if "parameters" not in yml:
pytest.skip("No parameters specified in the heat template")
if "parameters" not in yml:
pytest.skip("No parameters specified in the heat template")
- invalid_param
eters = []
- for
k1, v1
in yml["parameters"].items():
- if not isinstance(
v1
, dict):
+ invalid_param
s = defaultdict(list)
+ for
param, param_attrs
in yml["parameters"].items():
+ if not isinstance(
param_attrs
, dict):
continue
continue
- if not all(map(lambda v: v in v1, required_keys)):
- invalid_parameters.append(k1)
+ for key in required_keys:
+ if key not in param_attrs:
+ invalid_params[param].append(key)
- assert not set(invalid_parameters)
+ msg = [
+ "Parameter {} is missing required attribute(s): {}".format(k, ", ".join(v))
+ for k, v in invalid_params.items()
+ ]
+ msg = ". ".join(msg)
+ assert not invalid_params, msg