示例#1
0
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')
示例#2
0
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
示例#3
0
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)
示例#4
0
 def run():
     trie = basekeyparser.BindingTrie()
     trie.update(bindings)