Add a test for recursion
This commit is contained in:
parent
5dfa02b45f
commit
d7f569b341
@ -854,7 +854,7 @@ def resolve_aliases_in_action(action: KeyAction, aliases: Dict[str, List[ActionA
|
|||||||
if recursive:
|
if recursive:
|
||||||
aliases = aliases.copy()
|
aliases = aliases.copy()
|
||||||
aliases.pop(alias.func_name)
|
aliases.pop(alias.func_name)
|
||||||
return resolve_aliases_in_action(action._replace(func=alias.func_name, args=alias.args + action.args), aliases)
|
return resolve_aliases_in_action(action, aliases)
|
||||||
if action.args and alias.second_arg_test(action.args[0]):
|
if action.args and alias.second_arg_test(action.args[0]):
|
||||||
return resolve_aliases_in_action(action._replace(func=alias.func_name, args=alias.args + action.args[1:]), aliases)
|
return resolve_aliases_in_action(action._replace(func=alias.func_name, args=alias.args + action.args[1:]), aliases)
|
||||||
return action
|
return action
|
||||||
|
|||||||
@ -63,6 +63,10 @@ class TestConfParsing(BaseTest):
|
|||||||
ka = tuple(opts.keymap.values())[0][0]
|
ka = tuple(opts.keymap.values())[0][0]
|
||||||
self.ae(ka.func, 'launch')
|
self.ae(ka.func, 'launch')
|
||||||
self.ae(ka.args, ('--moo', 'recursive', 'XXX'))
|
self.ae(ka.args, ('--moo', 'recursive', 'XXX'))
|
||||||
|
opts = p('clear_all_shortcuts y', 'action_alias launch launch --moo', 'map f1 launch XXX')
|
||||||
|
ka = tuple(opts.keymap.values())[0][0]
|
||||||
|
self.ae(ka.func, 'launch')
|
||||||
|
self.ae(ka.args, ('--moo', 'XXX'))
|
||||||
opts = p('clear_all_shortcuts y', 'action_alias la launch --moo', 'map f1 combine : new_window : la ')
|
opts = p('clear_all_shortcuts y', 'action_alias la launch --moo', 'map f1 combine : new_window : la ')
|
||||||
ka = tuple(opts.keymap.values())[0]
|
ka = tuple(opts.keymap.values())[0]
|
||||||
self.ae((ka[0].func, ka[1].func), ('new_window', 'launch'))
|
self.ae((ka[0].func, ka[1].func), ('new_window', 'launch'))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user