validator now shows missing keys 73/76073/2
authorDibya Prakash Das <dibyadascool@gmail.com>
Thu, 13 Sep 2018 21:17:13 +0000 (02:47 +0530)
committerLuis Gomez <ecelgp@gmail.com>
Thu, 20 Sep 2018 23:37:04 +0000 (23:37 +0000)
Change-Id: I68acc59c56683290ec940e3380287c9a4a1716a5
Signed-off-by: Dibya Prakash Das <dibyadascool@gmail.com>
csit/scripts/generate_visState.py

index 093cd1a0dbccc09379c6d7a16589749f455cb06c..3e8a24933e3b4237b69a3be67af1540ded899f16 100644 (file)
@@ -382,9 +382,11 @@ def generate(dash_config, viz_config):
             # print("No default index found")
             pass
 
-    if not config_validator(format):
-        raise ValueError('Missing required field values')
+    missing = config_validator(format)
+    if len(missing):
+        raise ValueError('Missing required field values :-', *missing)
 
+    # print(format)
     p(format)
 
     vis = visState()
@@ -393,28 +395,29 @@ def generate(dash_config, viz_config):
     # checking incase there are None values \
     # in the format indicating missing fields
 
-    if not config_validator(generated_visState):
-        raise KeyError('required fields are missing values!')
+    missing = config_validator(generated_visState)
+    if len(missing):
+        raise ValueError('required fields are missing values! ', *missing)
     return format, generated_visState
 
 
 # Check the generated format if it contains any key with None
 # as it's value which indicates incomplete information
-def config_validator(val):
-    flag = True
-    for _, i in val.items():
-        if isinstance(i, dict):
-            flag = config_validator(i)
-        if i is None:
-            return False
-    return flag
+
+def config_validator(val, missing=[]):
+    for key, value in val.items():
+        if isinstance(value, dict):
+            config_validator(value)
+        if value is None:
+            missing.append(key)
+    return missing
 
 
 if __name__ == '__main__':
-    with open('viz.yaml', 'r') as f:
+    with open('viz_config.yaml', 'r') as f:
         viz_config = yaml.safe_load(f)
 
-    with open('dashboard.yaml', 'r') as f:
+    with open('dash_config.yaml', 'r') as f:
         dash_config = yaml.safe_load(f)
 
     generate(dash_config['dashboard']['viz'][2],