diff options
author | stark, steven <ss820f@att.com> | 2018-08-09 15:33:25 -0700 |
---|---|---|
committer | stark, steven <ss820f@att.com> | 2018-08-09 15:34:02 -0700 |
commit | 1af0d577ab6d8c431ae1322657c50efd5e0a1a93 (patch) | |
tree | 1f5d8df2c1bf55a83468af2d15d1cd24486d8857 /ice_validator/tests/test_environment_file_structure.py | |
parent | 06511c3ae3ed91250586d4b1c14130d83eaa64c8 (diff) |
[VVP] create new validation scripts
- create validation scripts for R-04747, R-30804, R-11690, R-46839, R-98407
- other small script enhancements
Change-Id: I12c42a43c83e5cb4217895c19fd0beef928dc955
Issue-ID: VVP-103
Signed-off-by: stark, steven <ss820f@att.com>
Diffstat (limited to 'ice_validator/tests/test_environment_file_structure.py')
-rw-r--r-- | ice_validator/tests/test_environment_file_structure.py | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/ice_validator/tests/test_environment_file_structure.py b/ice_validator/tests/test_environment_file_structure.py index 7213e3b..b50629e 100644 --- a/ice_validator/tests/test_environment_file_structure.py +++ b/ice_validator/tests/test_environment_file_structure.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. # =================================================================== # # 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 # @@ -37,10 +37,19 @@ # # ECOMP is a trademark and service mark of AT&T Intellectual Property. # -from .helpers import validates + +""" environment file structure +""" + import yaml import pytest +from .helpers import validates + +VERSION = '1.0.0' + +# pylint: disable=invalid-name + def test_environment_structure(env_file): ''' @@ -51,7 +60,10 @@ def test_environment_structure(env_file): with open(env_file) as fh: yml = yaml.load(fh) - assert any(map(lambda v: v in yml, key_values)) + assert [k for k in key_values if k in yml], ( + '%s missing any of %s' % ( + env_file, + key_values)) @validates('R-03324') @@ -59,11 +71,12 @@ def test_environment_file_contains_required_sections(env_file): ''' Check that all environments files only have the allowed sections ''' - required_key_values = ["parameters"] + required_keys = ["parameters"] with open(env_file) as fh: yml = yaml.load(fh) - assert any(map(lambda v: v in yml, required_key_values)) + missing_keys = [v for v in required_keys if v not in yml] + assert not missing_keys, '%s missing %s' % (env_file, missing_keys) def test_environment_file_sections_have_the_right_format(env_file): @@ -71,29 +84,30 @@ def test_environment_file_sections_have_the_right_format(env_file): Check that all environment files have sections of the right format. Do note that it only tests for dicts or not dicts currently. ''' - key_values = ["parameters", "event_sinks", "encrypted_parameters", - "parameter_merge_strategies"] - key_values_not_dicts = ["event_sinks"] + dict_keys = [ + "parameters", + "encrypted_parameters", + "parameter_merge_strategies"] + not_dict_keys = [ + "event_sinks"] with open(env_file) as fh: yml = yaml.load(fh) - if not any(map(lambda v: v in yml, key_values)): + if not [k for k in dict_keys + not_dict_keys if k in yml]: pytest.skip('The fixture is not applicable for this test') - is_dict = 0 - should_be_dict = 0 - is_not_dict = 0 - should_not_be_dict = 0 - for key_value in key_values: - if key_value in yml: - if isinstance(yml[key_value], dict): - is_dict += 1 - if key_value not in key_values_not_dicts: - should_be_dict += 1 - elif not isinstance(yml[key_value], list): - is_not_dict += 1 - if key_value in key_values_not_dicts: - should_not_be_dict += 1 - assert (is_dict == should_be_dict and - is_not_dict == should_not_be_dict) + bad_dict_keys = [k for k in dict_keys + if k in yml + and not isinstance(yml[k], dict)] + bad_not_dict_keys = [k for k in not_dict_keys + if k in yml + and isinstance(yml[k], dict)] + errors = [] + if bad_dict_keys: + errors.append('must be dict %s' % bad_dict_keys) + if bad_not_dict_keys: + errors.append('must not be dict %s' % bad_not_dict_keys) + assert not errors, '%s errors:\n %s' % ( + env_file, + '\n '.join(errors)) |