You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ariatosca.apache.org by mx...@apache.org on 2017/10/19 12:01:18 UTC

[08/10] incubator-ariatosca git commit: ARIA-312 Validation of workflow and operation kwargs raise False alarms

ARIA-312 Validation of workflow and operation kwargs raise False alarms

Workflow and Operation function kwargs validation failed in some scenarios.


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

Branch: refs/heads/new_wagon_setuptools
Commit: 615868c1ddd569114f5d2eee81851059cca1af7a
Parents: c63059a
Author: max-orlov <ma...@gigaspaces.com>
Authored: Mon Jul 10 17:12:00 2017 +0300
Committer: Ran Ziv <ra...@gigaspaces.com>
Committed: Mon Jul 10 18:02:32 2017 +0300

----------------------------------------------------------------------
 aria/utils/validation.py       |  2 +-
 tests/utils/test_validation.py | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/615868c1/aria/utils/validation.py
----------------------------------------------------------------------
diff --git a/aria/utils/validation.py b/aria/utils/validation.py
index 3452dcc..06989a7 100644
--- a/aria/utils/validation.py
+++ b/aria/utils/validation.py
@@ -78,7 +78,7 @@ def validate_function_arguments(func, func_kwargs):
 
     # all args without the ones with default values
     args = func.func_code.co_varnames[:args_count]
-    non_default_args = args[:len(func.func_defaults)] if func.func_defaults else args
+    non_default_args = args[:len(args) - len(func.func_defaults)] if func.func_defaults else args
 
     # Check if any args without default values is missing in the func_kwargs
     for arg in non_default_args:

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/615868c1/tests/utils/test_validation.py
----------------------------------------------------------------------
diff --git a/tests/utils/test_validation.py b/tests/utils/test_validation.py
new file mode 100644
index 0000000..8e35f22
--- /dev/null
+++ b/tests/utils/test_validation.py
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import pytest
+
+from aria.utils import validation
+
+
+def test_function_kwargs_validation():
+
+    def mock_function(arg1, arg2=1, arg3=1):
+        pass
+
+    with pytest.raises(ValueError):
+        validation.validate_function_arguments(mock_function, dict(arg2=1))
+    with pytest.raises(ValueError):
+        validation.validate_function_arguments(mock_function, dict(arg3=3))
+    with pytest.raises(ValueError):
+        validation.validate_function_arguments(mock_function, dict(arg2=2, arg3=3))
+
+    validation.validate_function_arguments(mock_function, dict(arg1=1, arg3=3))
+    validation.validate_function_arguments(mock_function, dict(arg1=1, arg2=2))
+    validation.validate_function_arguments(mock_function, dict(arg1=1, arg2=2, arg3=3))