X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_nova_servers_workload_context.py;h=dc4c43747e4a18037cb5f7a150d47716e714bdce;hb=48d35093a120d5a8c02a28c4a72f4f7d69b664f4;hp=650a6e14adf93fba0187740bffa7619bda99ea88;hpb=60d5ad7d00eadd6395eca186e6fa76a43df3c6cf;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_nova_servers_workload_context.py b/ice_validator/tests/test_nova_servers_workload_context.py index 650a6e1..dc4c437 100644 --- a/ice_validator/tests/test_nova_servers_workload_context.py +++ b/ice_validator/tests/test_nova_servers_workload_context.py @@ -35,28 +35,31 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # -'''workload context -''' +"""workload 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-74978') -def test_workload_context(heat_template): - ''' +@validates("R-74978") +def test_workload_context(yaml_file): + """ + A VNF's Heat Orchestration Template's OS::Nova::Server Resource + **MUST** + contain the metadata map value parameter 'workload_context'. + A VNF's Heat Orchestration Template's OS::Nova::Server Resource metadata map value parameter 'workload_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 +68,28 @@ def test_workload_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 workload_context - is a string. + """validate metatdata. + Ensure metadata references parameter workload_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'] == 'workload_context': - wc = parameters.get('workload_context', {}) - if wc.get('type') == 'string': - break - else: - return ('must have parameter "workload_context"' - ' of type "string"') - break - else: - return None - + if get_param(value) == "workload_context" and parameters.get("workload_context", {}).get("type", "") != "string": + return 'must have parameter "workload_context" of type "string"' + else: + return None