66from functools import partial
77import codecs
88
9- from bogo .core import _Action , _get_action , process_sequence
9+ from bogo .core import _Action , _get_action , process_sequence , handle_backspace
1010from bogo .mark import Mark
1111import os
1212
@@ -192,4 +192,21 @@ def test_with_separator(self):
192192
193193 def test_change_tone (self ):
194194 eq_ (process_sequence ('meofs' ), 'méo' )
195- eq_ (process_sequence ('mèos' ), 'méo' )
195+ eq_ (process_sequence ('mèos' ), 'méo' )
196+
197+
198+ class TestHandleBackspace ():
199+
200+ def test_delete_non_im_key (self ):
201+ eq_ (handle_backspace ('an' , 'an' ), ('a' , 'a' ))
202+ eq_ (handle_backspace ('a' , 'a' ), ('' , '' ))
203+
204+ def test_delete_one_im_key (self ):
205+ eq_ (handle_backspace ('bà' , 'baf' ), ('b' , 'b' ))
206+ eq_ (handle_backspace ('bâ' , 'baa' ), ('b' , 'b' ))
207+
208+ def test_delete_two_im_keys (self ):
209+ eq_ (handle_backspace ('bớ' , 'bows' ), ('b' , 'b' ))
210+
211+ def test_non_im_key_before_im_key (self ):
212+ eq_ (handle_backspace ('bân' , 'bana' ), ('bâ' , 'baa' ))
0 commit comments