def template_test(self, func, letters, number_args): args_packed = pack_args(letters, number_args) args, kwarg_objects = MenuNode._split_kwargs(args_packed) kwargs = {kw.key(): kw.value() for kw in kwarg_objects} print(kwargs) menu = {'command': 'test', 'function': func} mn = MenuNode(**menu) try: mn._function(*args, **kwargs) except TypeError: with pytest.raises(InvalidArgError): mn._validate_function_args(args_packed) else: # assert anything here? mn._validate_function_args(args_packed)
def test_mixed(self): li = [1, Kwarg('test', 1), 'test'] with pytest.raises(SyntaxError): MenuNode._split_kwargs(li)
def test_kwargs_first(self): args = [1, 'test'] kwargs = [Kwarg('test', 1), Kwarg('test', 2)] with pytest.raises(SyntaxError): MenuNode._split_kwargs([*kwargs, *args])
def test_args_first(self): args = [1, 'test'] kwargs = [Kwarg('test', 1), Kwarg('test', 2)] expected = (args, kwargs) assert MenuNode._split_kwargs([*args, *kwargs]) == expected
def test_only_kwargs(self): kwargs = [Kwarg('test', 1), Kwarg('test', 2)] expected = ([], kwargs) assert MenuNode._split_kwargs(kwargs) == expected
def test_only_args(self): args = [1, 'test'] expected = (args, []) assert MenuNode._split_kwargs(args) == expected
def test_empty(self): expected = ([], []) assert MenuNode._split_kwargs([]) == expected