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, {})
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})
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})
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, {})
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, {})
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})