@@ -158,6 +158,7 @@ def binding(kb: prompt_toolkit.key_binding.KeyBindings, *keys: str | Keys) -> An
158158
159159def patch_filter_app (monkeypatch , app : DummyApp ) -> None :
160160 monkeypatch .setitem (key_bindings .emacs_mode .func .__globals__ , 'get_app' , lambda : app )
161+ monkeypatch .setitem (key_bindings .vi_mode .func .__globals__ , 'get_app' , lambda : app )
161162 monkeypatch .setitem (key_bindings .completion_is_selected .func .__globals__ , 'get_app' , lambda : app )
162163 monkeypatch .setitem (key_bindings .control_is_searchable .func .__globals__ , 'get_app' , lambda : app )
163164
@@ -330,13 +331,26 @@ def test_tab_binding_supports_configured_behaviors(
330331 assert event .app .current_buffer .cancel_completion_calls == expected_cancel
331332
332333
333- def test_escape_binding_cancels_completion_menu (monkeypatch ) -> None :
334+ @pytest .mark .parametrize (
335+ ('editing_mode' , 'expected_eager' ),
336+ (
337+ (EditingMode .VI , True ),
338+ (EditingMode .EMACS , False ),
339+ ),
340+ )
341+ def test_escape_binding_cancels_completion_menu (
342+ monkeypatch ,
343+ editing_mode : EditingMode ,
344+ expected_eager : bool ,
345+ ) -> None :
334346 mycli = DummyMyCli (DummyKeysConfig ())
335347 kb = key_bindings .mycli_bindings (mycli )
336348 event = make_event (DummyBuffer (complete_state = object ()))
349+ event .app .editing_mode = editing_mode
337350 monkeypatch .setattr (key_bindings , 'get_app' , lambda : event .app )
351+ patch_filter_app (monkeypatch , event .app )
338352
339- assert binding (kb , Keys .Escape ).eager () is True
353+ assert binding (kb , Keys .Escape ).eager () is expected_eager
340354 assert binding_filter (kb , Keys .Escape )() is True
341355
342356 inactive_event = make_event (DummyBuffer (complete_state = None ))
0 commit comments