From 03d5e206950c4cc800a4782ea6f134cfe3fd51eb Mon Sep 17 00:00:00 2001 From: dkmvs <67212386+dkmvs@users.noreply.github.com> Date: Tue, 29 Sep 2020 22:05:54 +0300 Subject: [PATCH] Add Test for `Keybinding>Preferences` This commit adds `test_keybinding_successfully_reassigned_after_clearing` test, which checks that a key binding is successfully reassigned after it has been cleared. --- tests/test_prefseditor_keybindings.py | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tests/test_prefseditor_keybindings.py b/tests/test_prefseditor_keybindings.py index 4fa9db70..9d8ec02d 100644 --- a/tests/test_prefseditor_keybindings.py +++ b/tests/test_prefseditor_keybindings.py @@ -251,3 +251,50 @@ def test_keybinding_edit_produce_expected_accels( accel_after_edit = (keyval_after_edit, mods_after_edit) assert accel_after_edit == expected_accel + + +@pytest.mark.parametrize( + "accel_params", + [ + # Format: (path, key, mods, hardware_keycode) + # 1) 'broadcast_all' 1 + ("0", Gdk.KEY_1, Gdk.ModifierType(0), 10), + # 2) 'broadcast_group' Ctrl+Alt+Shift+Up + ("1", Gdk.KEY_Up, CONTROL_ALT_SHIFT_MOD, 111), + ], +) +def test_keybinding_successfully_reassigned_after_clearing(accel_params): + """ + Tests that a key binding is successfully reassigned after it has been cleared, + that is no error is thrown at any stage. + """ + from terminatorlib import terminal + from terminatorlib import prefseditor + + term = terminal.Terminal() + prefs_editor = prefseditor.PrefsEditor(term=term) + + widget = prefs_editor.builder.get_object("keybindingtreeview") + liststore = widget.get_model() + + path, key, mods, hardware_keycode = accel_params + # Assign a key binding + prefs_editor.on_cellrenderer_accel_edited( + liststore=liststore, + path=path, + key=key, + mods=mods, + _code=hardware_keycode, + ) + # Clear the key binding + prefs_editor.on_cellrenderer_accel_cleared(liststore=liststore, path=path) + # Reassign the key binding + prefs_editor.on_cellrenderer_accel_edited( + liststore=liststore, + path=path, + key=key, + mods=mods, + _code=hardware_keycode, + ) + + reset_config_keybindings()