[VVP] updating validation scripts in dublin
[vvp/validation-scripts.git] / ice_validator / tests / test_nova_servers_workload_context.py
index 650a6e1..5703f75 100644 (file)
 # 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
 
-VERSION = '1.0.0'
+VERSION = "1.0.0"
 
 
-@validates('R-74978')
+@validates("R-74978")
 def test_workload_context(heat_template):
-    '''
+    """
+    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:
         yml = yaml.load(fh)
 
@@ -65,38 +69,37 @@ 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' % (heat_template, 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':
+            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"')
+                        return (
+                            'must have parameter "workload_context"' ' of type "string"'
+                        )
                     break
     else:
         return None
-