Exemplo n.º 1
0
def test__function_has_keyword_parameters__empty():
    """ Test if `_function_has_keyword_parameters` handles no argument cases. """
    def func():
        pass

    with pytest.raises(TypeError):
        _function_has_keyword_parameters(func, {'arg': None})

    _function_has_keyword_parameters(func, {})
Exemplo n.º 2
0
def test__function_has_keyword_parameters__less_verbose_type_hints():
    """ Test if `_function_has_keyword_parameters` handles checks validates less verbose type hints.
    """
    def func(kwarg=HParam(str)) -> None:
        pass

    _function_has_keyword_parameters(func, {'kwarg': ''})

    with pytest.raises(TypeError):
        _function_has_keyword_parameters(func, {'kwarg': None})
Exemplo n.º 3
0
def test__function_has_keyword_parameters__type_hints():
    """ Test if `_function_has_keyword_parameters` handles checks validates type hints. """
    def func(arg: str, kwarg: str = HParam()) -> None:
        pass

    _function_has_keyword_parameters(func, {'arg': ''})
    _function_has_keyword_parameters(func, {'kwarg': ''})
    with pytest.raises(TypeError):
        _function_has_keyword_parameters(func, {'arg': None})

    with pytest.raises(TypeError):
        _function_has_keyword_parameters(func, {'kwarg': None})
Exemplo n.º 4
0
def test__function_has_keyword_parameters__variable_keyword():
    """ Test if `_function_has_keyword_parameters` handles variable keyword cases. """
    def func(**kwargs):
        pass

    _function_has_keyword_parameters(func, {'arg': None})
    # Ensure that keyword argument `kwargs` is allowed despite variable keyword argument `kwargs`.
    _function_has_keyword_parameters(func, {'kwargs': None})
    _function_has_keyword_parameters(func, {})
Exemplo n.º 5
0
def test__function_has_keyword_parameters__variable_positional():
    """ Test if `_function_has_keyword_parameters` handles variable positional cases. """
    def func(*args):
        pass

    with pytest.raises(TypeError):
        _function_has_keyword_parameters(func, {'arg': None})
    with pytest.raises(TypeError):
        # Ensure that keyword argument `args` is not mixed up with variable argument `args`.
        _function_has_keyword_parameters(func, {'args': None})
    _function_has_keyword_parameters(func, {})
Exemplo n.º 6
0
def test__function_has_keyword_parameters__none_variable():
    """ Test if `_function_has_keyword_parameters` handles none variable argument cases. """

    def func(arg, kwarg=''):
        pass

    _function_has_keyword_parameters(func, {'arg': None})
    _function_has_keyword_parameters(func, {'kwarg': None})
    _function_has_keyword_parameters(func, {'arg': None, 'kwarg': None})
    _function_has_keyword_parameters(func, {})
    with pytest.raises(TypeError):
        _function_has_keyword_parameters(func, {'other': None})
    with pytest.raises(TypeError):
        _function_has_keyword_parameters(func, {'arg': None, 'kwarg': None, 'other': None})