@@ -96,3 +96,45 @@ def test_common_prefix(processor, handlers):
9696 processor .process_keys ()
9797
9898 assert  handlers .called  ==  ['control_x' , 'control_d' ]
99+ 
100+ 
101+ def  test_previous_key_sequence (processor , handlers ):
102+  """ 
103+  test whether we receive the correct previous_key_sequence. 
104+  """ 
105+  events  =  []
106+  def  handler (event ):
107+  events .append (event )
108+ 
109+  # Build registry. 
110+  registry  =  Registry ()
111+  registry .add_binding ('a' , 'a' )(handler )
112+  registry .add_binding ('b' , 'b' )(handler )
113+  processor  =  InputProcessor (registry , lambda : None )
114+ 
115+  # Create processor and feed keys. 
116+  processor .feed (KeyPress ('a' , 'a' ))
117+  processor .feed (KeyPress ('a' , 'a' ))
118+  processor .feed (KeyPress ('b' , 'b' ))
119+  processor .feed (KeyPress ('b' , 'b' ))
120+  processor .process_keys ()
121+ 
122+  # Test. 
123+  assert  len (events ) ==  2 
124+  assert  len (events [0 ].key_sequence ) ==  2 
125+  assert  events [0 ].key_sequence [0 ].key  ==  'a' 
126+  assert  events [0 ].key_sequence [0 ].data  ==  'a' 
127+  assert  events [0 ].key_sequence [1 ].key  ==  'a' 
128+  assert  events [0 ].key_sequence [1 ].data  ==  'a' 
129+  assert  events [0 ].previous_key_sequence  ==  []
130+ 
131+  assert  len (events [1 ].key_sequence ) ==  2 
132+  assert  events [1 ].key_sequence [0 ].key  ==  'b' 
133+  assert  events [1 ].key_sequence [0 ].data  ==  'b' 
134+  assert  events [1 ].key_sequence [1 ].key  ==  'b' 
135+  assert  events [1 ].key_sequence [1 ].data  ==  'b' 
136+  assert  len (events [1 ].previous_key_sequence ) ==  2 
137+  assert  events [1 ].previous_key_sequence [0 ].key  ==  'a' 
138+  assert  events [1 ].previous_key_sequence [0 ].data  ==  'a' 
139+  assert  events [1 ].previous_key_sequence [1 ].key  ==  'a' 
140+  assert  events [1 ].previous_key_sequence [1 ].data  ==  'a' 
0 commit comments