diff options
author | Jonathan Slenders <jonathan@slenders.be> | 2017-03-26 19:05:01 +0200 |
---|---|---|
committer | Jonathan Slenders <jonathan@slenders.be> | 2017-04-02 15:43:15 +0200 |
commit | 6fb4ff8983ea74219618f320ef8107e0d321265b (patch) | |
tree | 24343c8207eabe16c181d957a588aae56f712c86 /tests | |
parent | 2362f654e9c737876984d396d663894783defa4d (diff) |
Fixes previous_key_sequences: make a copy of key_sequences before calling the handler + initialize to an empty list.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_key_binding.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/test_key_binding.py b/tests/test_key_binding.py index 4878756e..2611a6ef 100644 --- a/tests/test_key_binding.py +++ b/tests/test_key_binding.py @@ -96,3 +96,45 @@ def test_common_prefix(processor, handlers): processor.process_keys() assert handlers.called == ['control_x', 'control_d'] + + +def test_previous_key_sequence(processor, handlers): + """ + test whether we receive the correct previous_key_sequence. + """ + events = [] + def handler(event): + events.append(event) + + # Build registry. + registry = Registry() + registry.add_binding('a', 'a')(handler) + registry.add_binding('b', 'b')(handler) + processor = InputProcessor(registry, lambda: None) + + # 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' |