change if bad to assert not bad, message
[vvp/validation-scripts.git] / ice_validator / tests / test_nova_servers_environment_context.py
index 95baa3a..780733a 100644 (file)
 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-20308")
-def test_environment_context(heat_template):
+def test_environment_context(yaml_file):
     """
     A VNF's Heat Orchestration Template's OS::Nova::Server Resource
     **MUST**
@@ -59,7 +60,7 @@ def test_environment_context(heat_template):
     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:
@@ -79,7 +80,7 @@ def test_environment_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):
@@ -89,17 +90,5 @@ 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"] == "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"'