X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_nova_servers_environment_context.py;h=780733ad8b12ddb4eb28e68607596caffc4900f8;hb=00c64458942602efe5a3b712540b98ac94fb60f4;hp=9e01ce0e3a6e005768b33db629b69d0af3642b98;hpb=60d5ad7d00eadd6395eca186e6fa76a43df3c6cf;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_nova_servers_environment_context.py b/ice_validator/tests/test_nova_servers_environment_context.py index 9e01ce0..780733a 100644 --- a/ice_validator/tests/test_nova_servers_environment_context.py +++ b/ice_validator/tests/test_nova_servers_environment_context.py @@ -35,28 +35,32 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # -'''environment context -''' +"""environment context +""" import pytest from tests import cached_yaml as yaml -from .helpers import validates +from .helpers import validates, get_param -VERSION = '1.0.0' +VERSION = "1.0.0" + + +@validates("R-20308") +def test_environment_context(yaml_file): + """ + A VNF's Heat Orchestration Template's OS::Nova::Server Resource + **MUST** + contain the metadata map value parameter 'environment_context'. -@validates('R-20308') -def test_environment_context(heat_template): - ''' A VNF's Heat Orchestration Template's OS::Nova::Server Resource metadata map value parameter 'environment_context' **MUST** be declared as type: 'string'. - ''' - with open(heat_template) as fh: + """ + with open(yaml_file) as fh: yml = yaml.load(fh) if "parameters" not in yml: @@ -65,38 +69,26 @@ def test_environment_context(heat_template): pytest.skip("No resources specified in the heat template") for resource, v in yml["resources"].items(): - if (not isinstance(v, dict) - or v.get('type') != 'OS::Nova::Server' - or 'properties' not in v): + if ( + not isinstance(v, dict) + or v.get("type") != "OS::Nova::Server" + or "properties" not in v + ): continue - metadata = v['properties'].get('metadata') + metadata = v["properties"].get("metadata") if not isinstance(metadata, dict): continue - error = validate_metadata(metadata, yml['parameters']) + error = validate_metadata(metadata, yml["parameters"]) if error: - assert False, '%s resource "%s" %s' % ( - heat_template, - resource, - error) + assert False, '%s resource "%s" %s' % (yaml_file, resource, error) def validate_metadata(metadata, parameters): - '''validate metatdata. - Ensure metadata references parameter environment_context - is a string. + """validate metatdata. + Ensure metadata references parameter environment_context, + and that it is a string. Return error message string or None if no errors. - ''' + """ for value in metadata.values(): - if isinstance(value, dict): - if 'get_param' in value: - if value['get_param'] == 'environment_context': - wc = parameters.get('environment_context', {}) - if wc.get('type') == 'string': - break - else: - return ('must have parameter "environment_context"' - ' of type "string"') - break - else: - return None - + if get_param(value) == "environment_context" and parameters.get("environment_context", {}).get("type", "") != "string": + return 'must have parameter "environment_context" of type "string"'