Repository: incubator-ariatosca Updated Branches: refs/heads/0.1.1-rc 328da3f06 -> 8e4f4e24e (forced update)
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/0.1.1-rc Commit: 615868c1ddd569114f5d2eee81851059cca1af7a Parents: c63059a Author: max-orlov <ma...@gigaspaces.com> Authored: Mon Jul 10 17:12:00 2017 +0300 Committer: Ran Ziv <r...@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))