def simulate_key(menu, key):
    """ Simulate passing `key` to a menu """
    control = to_container(menu).content
    key_bindings = control.key_bindings
    key_processor = KeyProcessor(key_bindings)
    key_processor.feed(KeyPress(key))
    key_processor.process_keys()
示例#2
0
def test_previous_key_sequence(processor):
    """
    test whether we receive the correct previous_key_sequence.
    """
    with set_dummy_app():
        events = []

        def handler(event):
            events.append(event)

        # Build registry.
        registry = KeyBindings()
        registry.add('a', 'a')(handler)
        registry.add('b', 'b')(handler)
        processor = KeyProcessor(registry)

        # Create processor and feed keys.
        processor.feed(KeyPress('a', 'a'))
        processor.feed(KeyPress('a', 'a'))
        processor.feed(KeyPress('b', 'b'))
        processor.feed(KeyPress('b', 'b'))
        processor.process_keys()

        # Test.
        assert len(events) == 2
        assert len(events[0].key_sequence) == 2
        assert events[0].key_sequence[0].key == 'a'
        assert events[0].key_sequence[0].data == 'a'
        assert events[0].key_sequence[1].key == 'a'
        assert events[0].key_sequence[1].data == 'a'
        assert events[0].previous_key_sequence == []

        assert len(events[1].key_sequence) == 2
        assert events[1].key_sequence[0].key == 'b'
        assert events[1].key_sequence[0].data == 'b'
        assert events[1].key_sequence[1].key == 'b'
        assert events[1].key_sequence[1].data == 'b'
        assert len(events[1].previous_key_sequence) == 2
        assert events[1].previous_key_sequence[0].key == 'a'
        assert events[1].previous_key_sequence[0].data == 'a'
        assert events[1].previous_key_sequence[1].key == 'a'
        assert events[1].previous_key_sequence[1].data == 'a'
def test_previous_key_sequence(processor):
    """
    test whether we receive the correct previous_key_sequence.
    """
    with set_dummy_app():
        events = []
        def handler(event):
            events.append(event)

        # Build registry.
        registry = KeyBindings()
        registry.add('a', 'a')(handler)
        registry.add('b', 'b')(handler)
        processor = KeyProcessor(registry)

        # Create processor and feed keys.
        processor.feed(KeyPress('a', 'a'))
        processor.feed(KeyPress('a', 'a'))
        processor.feed(KeyPress('b', 'b'))
        processor.feed(KeyPress('b', 'b'))
        processor.process_keys()

        # Test.
        assert len(events) == 2
        assert len(events[0].key_sequence) == 2
        assert events[0].key_sequence[0].key == 'a'
        assert events[0].key_sequence[0].data == 'a'
        assert events[0].key_sequence[1].key == 'a'
        assert events[0].key_sequence[1].data == 'a'
        assert events[0].previous_key_sequence == []

        assert len(events[1].key_sequence) == 2
        assert events[1].key_sequence[0].key == 'b'
        assert events[1].key_sequence[0].data == 'b'
        assert events[1].key_sequence[1].key == 'b'
        assert events[1].key_sequence[1].data == 'b'
        assert len(events[1].previous_key_sequence) == 2
        assert events[1].previous_key_sequence[0].key == 'a'
        assert events[1].previous_key_sequence[0].data == 'a'
        assert events[1].previous_key_sequence[1].key == 'a'
        assert events[1].previous_key_sequence[1].data == 'a'