def test_get_function_non_positional_parameters_invalid(): _, non_positionals = split_function_parameters( decorated_function_two_positionals_one_kwarg(), ["bar", "baz"]) invalid_function_info = validate_decorated_fn_input_args( set(), non_positionals) assert invalid_function_info.error_type == InvalidDecoratedFunctionInfo.TYPES[ "missing_name"]
def test_get_function_positional_parameters_ok(): positionals, non_positionals = split_function_parameters( decorated_function_one_positional(), ["bar"]) validate_decorated_fn_positionals(positionals, ["bar"]) validate_decorated_fn_input_args(set(), non_positionals) assert "bar" in {positional.name for positional in positionals} assert not non_positionals
def test_get_function_positional_parameters_multiple(): positionals, non_positionals = split_function_parameters( decorated_function_two_positionals_one_kwarg(), ["bar", "baz"]) validate_decorated_fn_positionals(positionals, ["bar", "baz"]) assert {positional.name for positional in positionals} == {"bar", "baz"} assert {non_positional.name for non_positional in non_positionals} == {"qux"}
def test_get_function_positional_parameters_multiple(): positionals, non_positionals = split_function_parameters( decorated_function_two_positionals_one_kwarg(), ['bar', 'baz']) validate_decorated_fn_positionals(positionals, ['bar', 'baz']) validate_decorated_fn_non_positionals({'qux'}, non_positionals) assert {positional.name for positional in positionals} == {'bar', 'baz'} assert {non_positional.name for non_positional in non_positionals} == {'qux'}
def wrapper(func): fn_positionals, _ = split_function_parameters(func, EXPECTED_POSITIONALS) missing_positional = validate_decorated_fn_positionals(fn_positionals, EXPECTED_POSITIONALS) if missing_positional: raise DagsterInvalidDefinitionError( "@dagster_type_loader '{solid_name}' decorated function does not have required positional " "parameter '{missing_param}'. Solid functions should only have keyword arguments " "that match input names and a first positional parameter named 'context'.".format( solid_name=func.__name__, missing_param=missing_positional ) ) return _create_type_loader_for_decorator(config_type, func, required_resource_keys)
def test_get_function_positional_parameters_invalid(): positionals, _ = split_function_parameters( decorated_function_one_positional(), ["bat"]) assert validate_decorated_fn_positionals(positionals, ["bat"]) == "bat"