summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJonathan Slenders <jonathan@slenders.be>2017-03-26 19:05:01 +0200
committerJonathan Slenders <jonathan@slenders.be>2017-04-02 15:43:15 +0200
commit6fb4ff8983ea74219618f320ef8107e0d321265b (patch)
tree24343c8207eabe16c181d957a588aae56f712c86 /tests
parent2362f654e9c737876984d396d663894783defa4d (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.py42
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'