Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
ARIA-312 Validation of workflow and operation kwargs raise False alarms
Workflow and Operation function kwargs validation failed in some scenarios.
  • Loading branch information
mxmrlv committed Jul 10, 2017
1 parent f903006 commit 6c2f35ecd4898ac605787f729aff48fa8dd46097
Showing 2 changed files with 36 additions and 1 deletion.
@@ -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:
@@ -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))

0 comments on commit 6c2f35e

Please sign in to comment.