You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by ra...@apache.org on 2017/04/06 10:50:50 UTC

incubator-ariatosca git commit: improved type check

Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-48-aria-cli ef3f6a070 -> e04ba1fb1


improved type check


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/e04ba1fb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/e04ba1fb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/e04ba1fb

Branch: refs/heads/ARIA-48-aria-cli
Commit: e04ba1fb127484a011f6e6829800b9dcc27ec3b2
Parents: ef3f6a0
Author: Ran Ziv <ra...@gigaspaces.com>
Authored: Thu Apr 6 13:50:46 2017 +0300
Committer: Ran Ziv <ra...@gigaspaces.com>
Committed: Thu Apr 6 13:50:46 2017 +0300

----------------------------------------------------------------------
 aria/modeling/utils.py |  9 +++++----
 aria/utils/type.py     | 16 +++++++++-------
 2 files changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e04ba1fb/aria/modeling/utils.py
----------------------------------------------------------------------
diff --git a/aria/modeling/utils.py b/aria/modeling/utils.py
index 35ce991..34c2ac7 100644
--- a/aria/modeling/utils.py
+++ b/aria/modeling/utils.py
@@ -78,12 +78,13 @@ def _merge_and_validate_inputs(inputs, template_inputs):
         else:
             # Validate input type
             try:
-                # TODO: improve type validation; Needs to consider custom data_types as well
-                if input_template.type_name in ('list', 'dict', 'tuple', 'string', 'integer',
-                                                'boolean', 'float'):
-                    validate_value_type(inputs[input_name], input_template.type_name)
+                validate_value_type(inputs[input_name], input_template.type_name)
             except ValueError:
                 wrong_type_inputs[input_name] = input_template.type_name
+            except RuntimeError:
+                # TODO: This error shouldn't be raised (or caught), but right now we lack support
+                # for custom data_types, which will raise this error. Skipping their validation.
+                pass
 
     if missing_inputs:
         raise exceptions.MissingRequiredInputsException(

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e04ba1fb/aria/utils/type.py
----------------------------------------------------------------------
diff --git a/aria/utils/type.py b/aria/utils/type.py
index 292225a..abcf422 100644
--- a/aria/utils/type.py
+++ b/aria/utils/type.py
@@ -15,9 +15,13 @@
 
 
 def validate_value_type(value, type_name):
-    """Supports both python and yaml type names"""
-    #TODO add timestamp type?
+    """
+    Validate a value is of a specific type.
+    A ValueError will be raised on type mismatch.
+    Supports both python and yaml type names.
+    """
 
+    #TODO add timestamp type?
     name_to_type = {
         'list': list,
         'dict': dict,
@@ -34,11 +38,9 @@ def validate_value_type(value, type_name):
 
     type = name_to_type.get(type_name.lower())
     if type is None:
-        raise ValueError('No supported type_name was provided')
-    try:
-        type(value)
-    except ValueError:
-        raise
+        raise RuntimeError('No supported type_name was provided')
+    # validating value type - ValueError will be raised on type mismatch
+    type(value)
 
 
 def convert_value_to_type(str_value, type_name):