def test_str(): bindings = { keyutils.KeySequence.parse('a'): 'cmd-a', keyutils.KeySequence.parse('ba'): 'cmd-ba', keyutils.KeySequence.parse('bb'): 'cmd-bb', keyutils.KeySequence.parse('cax'): 'cmd-cax', keyutils.KeySequence.parse('cby'): 'cmd-cby', } trie = basekeyparser.BindingTrie() trie.update(bindings) expected = """ a: => cmd-a b: a: => cmd-ba b: => cmd-bb c: a: x: => cmd-cax b: y: => cmd-cby """ assert str(trie) == textwrap.dedent(expected).lstrip('\n')
def test_matches_single(entered, configured, match_type): entered = keyutils.KeySequence.parse(entered) configured = keyutils.KeySequence.parse(configured) trie = basekeyparser.BindingTrie() trie[configured] = "eeloo" command = "eeloo" if match_type == QKeySequence.ExactMatch else None result = basekeyparser.MatchResult(match_type=match_type, command=command, sequence=entered) assert trie.matches(entered) == result
def test_matches_tree(configured, expected, benchmark): trie = basekeyparser.BindingTrie() trie.update( {keyutils.KeySequence.parse(keys): "eeloo" for keys in configured}) def run(): for entered, match_type in expected: sequence = keyutils.KeySequence.parse(entered) command = ("eeloo" if match_type == QKeySequence.ExactMatch else None) result = basekeyparser.MatchResult(match_type=match_type, command=command, sequence=sequence) assert trie.matches(sequence) == result benchmark(run)
def run(): trie = basekeyparser.BindingTrie() trie.update(bindings)