change if bad to assert not bad, message
[vvp/validation-scripts.git] / ice_validator / tests / test_nova_servers_workload_context.py
index 5703f75..dc4c437 100644 (file)
@@ -35,7 +35,6 @@
 #
 # ============LICENSE_END============================================
 #
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
 #
 
 """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"
 
 
 @validates("R-74978")
-def test_workload_context(heat_template):
+def test_workload_context(yaml_file):
     """
     A VNF's Heat Orchestration Template's OS::Nova::Server Resource
     **MUST**
@@ -60,7 +59,7 @@ def test_workload_context(heat_template):
     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:
@@ -80,7 +79,7 @@ def test_workload_context(heat_template):
             continue
         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):
@@ -90,16 +89,7 @@ def validate_metadata(metadata, parameters):
     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