diff options
Diffstat (limited to 'tests/unit/keyinput/test_keyutils.py')
-rw-r--r-- | tests/unit/keyinput/test_keyutils.py | 327 |
1 files changed, 162 insertions, 165 deletions
diff --git a/tests/unit/keyinput/test_keyutils.py b/tests/unit/keyinput/test_keyutils.py index 8e7c3e276..748c87299 100644 --- a/tests/unit/keyinput/test_keyutils.py +++ b/tests/unit/keyinput/test_keyutils.py @@ -22,10 +22,7 @@ import operator import hypothesis from hypothesis import strategies import pytest -from qutebrowser.qt import machinery -from qutebrowser.qt.core import Qt, QEvent, pyqtSignal -from qutebrowser.qt.gui import QKeyEvent, QKeySequence -from qutebrowser.qt.widgets import QWidget +from qutebrowser.qt import widgets, gui, core, machinery from helpers import testutils from unit.keyinput import key_data @@ -63,7 +60,7 @@ def qtest_key(request): def test_key_data_keys(): """Make sure all possible keys are in key_data.KEYS.""" key_names = {name[len("Key_"):] - for name in testutils.enum_members(Qt, Qt.Key)} + for name in testutils.enum_members(core.Qt, core.Qt.Key)} key_data_names = {key.attribute for key in sorted(key_data.KEYS)} diff = key_names - key_data_names assert not diff @@ -72,14 +69,14 @@ def test_key_data_keys(): def test_key_data_modifiers(): """Make sure all possible modifiers are in key_data.MODIFIERS.""" mod_names = {name[:-len("Modifier")] - for name, value in testutils.enum_members(Qt, Qt.KeyboardModifier).items() - if value not in [Qt.KeyboardModifier.NoModifier, Qt.KeyboardModifier.KeyboardModifierMask]} + for name, value in testutils.enum_members(core.Qt, core.Qt.KeyboardModifier).items() + if value not in [core.Qt.KeyboardModifier.NoModifier, core.Qt.KeyboardModifier.KeyboardModifierMask]} mod_data_names = {mod.attribute for mod in sorted(key_data.MODIFIERS)} diff = mod_names - mod_data_names assert not diff -class KeyTesterWidget(QWidget): +class KeyTesterWidget(widgets.QWidget): """Widget to get the text of QKeyPressEvents. @@ -87,7 +84,7 @@ class KeyTesterWidget(QWidget): call that directly, only via QTest::keyPress. """ - got_text = pyqtSignal() + got_text = core.pyqtSignal() def __init__(self, parent=None): super().__init__(parent) @@ -106,7 +103,7 @@ class TestKeyInfoText: See key_data.py for inputs and expected values. """ - modifiers = Qt.KeyboardModifier.ShiftModifier if upper else Qt.KeyboardModifier.NoModifier + modifiers = core.Qt.KeyboardModifier.ShiftModifier if upper else core.Qt.KeyboardModifier.NoModifier info = keyutils.KeyInfo(qt_key.member, modifiers=modifiers) expected = qt_key.uppertext if upper else qt_key.text assert info.text() == expected @@ -143,38 +140,38 @@ class TestKeyToString: monkeypatch.delattr(keyutils.Qt, 'Key_AltGr') # We don't want to test the key which is actually missing - we only # want to know if the mapping still behaves properly. - assert keyutils._key_to_string(Qt.Key.Key_A) == 'A' + assert keyutils._key_to_string(core.Qt.Key.Key_A) == 'A' @pytest.mark.parametrize('key, modifiers, expected', [ - (Qt.Key.Key_A, Qt.KeyboardModifier.NoModifier, 'a'), - (Qt.Key.Key_A, Qt.KeyboardModifier.ShiftModifier, 'A'), - - (Qt.Key.Key_Space, Qt.KeyboardModifier.NoModifier, '<Space>'), - (Qt.Key.Key_Space, Qt.KeyboardModifier.ShiftModifier, '<Shift+Space>'), - (Qt.Key.Key_Tab, Qt.KeyboardModifier.ShiftModifier, '<Shift+Tab>'), - (Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier, '<Ctrl+a>'), - (Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.ShiftModifier, '<Ctrl+Shift+a>'), - (Qt.Key.Key_A, - Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.AltModifier | Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.ShiftModifier, + (core.Qt.Key.Key_A, core.Qt.KeyboardModifier.NoModifier, 'a'), + (core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ShiftModifier, 'A'), + + (core.Qt.Key.Key_Space, core.Qt.KeyboardModifier.NoModifier, '<Space>'), + (core.Qt.Key.Key_Space, core.Qt.KeyboardModifier.ShiftModifier, '<Shift+Space>'), + (core.Qt.Key.Key_Tab, core.Qt.KeyboardModifier.ShiftModifier, '<Shift+Tab>'), + (core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier, '<Ctrl+a>'), + (core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.ShiftModifier, '<Ctrl+Shift+a>'), + (core.Qt.Key.Key_A, + core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.AltModifier | core.Qt.KeyboardModifier.MetaModifier | core.Qt.KeyboardModifier.ShiftModifier, '<Meta+Ctrl+Alt+Shift+a>'), - (ord('Œ'), Qt.KeyboardModifier.NoModifier, '<Œ>'), - (ord('Œ'), Qt.KeyboardModifier.ShiftModifier, '<Shift+Œ>'), - (ord('Œ'), Qt.KeyboardModifier.GroupSwitchModifier, '<AltGr+Œ>'), - (ord('Œ'), Qt.KeyboardModifier.GroupSwitchModifier | Qt.KeyboardModifier.ShiftModifier, '<AltGr+Shift+Œ>'), - - (Qt.Key.Key_Shift, Qt.KeyboardModifier.ShiftModifier, '<Shift>'), - (Qt.Key.Key_Shift, Qt.KeyboardModifier.ShiftModifier | Qt.KeyboardModifier.ControlModifier, '<Ctrl+Shift>'), - (Qt.Key.Key_Alt, Qt.KeyboardModifier.AltModifier, '<Alt>'), - (Qt.Key.Key_Shift, Qt.KeyboardModifier.GroupSwitchModifier | Qt.KeyboardModifier.ShiftModifier, '<AltGr+Shift>'), - (Qt.Key.Key_AltGr, Qt.KeyboardModifier.GroupSwitchModifier, '<AltGr>'), + (ord('Œ'), core.Qt.KeyboardModifier.NoModifier, '<Œ>'), + (ord('Œ'), core.Qt.KeyboardModifier.ShiftModifier, '<Shift+Œ>'), + (ord('Œ'), core.Qt.KeyboardModifier.GroupSwitchModifier, '<AltGr+Œ>'), + (ord('Œ'), core.Qt.KeyboardModifier.GroupSwitchModifier | core.Qt.KeyboardModifier.ShiftModifier, '<AltGr+Shift+Œ>'), + + (core.Qt.Key.Key_Shift, core.Qt.KeyboardModifier.ShiftModifier, '<Shift>'), + (core.Qt.Key.Key_Shift, core.Qt.KeyboardModifier.ShiftModifier | core.Qt.KeyboardModifier.ControlModifier, '<Ctrl+Shift>'), + (core.Qt.Key.Key_Alt, core.Qt.KeyboardModifier.AltModifier, '<Alt>'), + (core.Qt.Key.Key_Shift, core.Qt.KeyboardModifier.GroupSwitchModifier | core.Qt.KeyboardModifier.ShiftModifier, '<AltGr+Shift>'), + (core.Qt.Key.Key_AltGr, core.Qt.KeyboardModifier.GroupSwitchModifier, '<AltGr>'), ]) def test_key_info_str(key, modifiers, expected): assert str(keyutils.KeyInfo(key, modifiers)) == expected def test_key_info_repr(): - info = keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.ShiftModifier) + info = keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ShiftModifier) expected = ( "<qutebrowser.keyinput.keyutils.KeyInfo " "key='Key_A' modifiers='ShiftModifier' text='A'>") @@ -182,14 +179,14 @@ def test_key_info_repr(): @pytest.mark.parametrize('info1, info2, equal', [ - (keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.NoModifier), - keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.NoModifier), + (keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.NoModifier), + keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.NoModifier), True), - (keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.NoModifier), - keyutils.KeyInfo(Qt.Key.Key_B, Qt.KeyboardModifier.NoModifier), + (keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.NoModifier), + keyutils.KeyInfo(core.Qt.Key.Key_B, core.Qt.KeyboardModifier.NoModifier), False), - (keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.NoModifier), - keyutils.KeyInfo(Qt.Key.Key_B, Qt.KeyboardModifier.ControlModifier), + (keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.NoModifier), + keyutils.KeyInfo(core.Qt.Key.Key_B, core.Qt.KeyboardModifier.ControlModifier), False), ]) def test_hash(info1, info2, equal): @@ -197,12 +194,12 @@ def test_hash(info1, info2, equal): @pytest.mark.parametrize('key, modifiers, text, expected', [ - (0xd83c, Qt.KeyboardModifier.NoModifier, '🏻', '<🏻>'), - (0xd867, Qt.KeyboardModifier.NoModifier, '𩷶', '<𩷶>'), - (0xd867, Qt.KeyboardModifier.ShiftModifier, '𩷶', '<Shift+𩷶>'), + (0xd83c, core.Qt.KeyboardModifier.NoModifier, '🏻', '<🏻>'), + (0xd867, core.Qt.KeyboardModifier.NoModifier, '𩷶', '<𩷶>'), + (0xd867, core.Qt.KeyboardModifier.ShiftModifier, '𩷶', '<Shift+𩷶>'), ]) def test_surrogates(key, modifiers, text, expected, pyqt_enum_workaround): - evt = QKeyEvent(QEvent.Type.KeyPress, key, modifiers, text) + evt = gui.QKeyEvent(core.QEvent.Type.KeyPress, key, modifiers, text) with pyqt_enum_workaround(): info = keyutils.KeyInfo.from_event(evt) assert str(info) == expected @@ -211,7 +208,7 @@ def test_surrogates(key, modifiers, text, expected, pyqt_enum_workaround): @pytest.mark.parametrize('keys, expected', [ ([0x1f3fb], '<🏻>'), ([0x29df6], '<𩷶>'), - ([Qt.Key.Key_Shift, 0x29df6], '<Shift><𩷶>'), + ([core.Qt.Key.Key_Shift, 0x29df6], '<Shift><𩷶>'), ([0x1f468, 0x200d, 0x1f468, 0x200d, 0x1f466], '<👨><><👨><><👦>'), ]) def test_surrogate_sequences(keys, expected, pyqt_enum_workaround): @@ -223,7 +220,7 @@ def test_surrogate_sequences(keys, expected, pyqt_enum_workaround): # This shouldn't happen, but if it does we should handle it well def test_surrogate_error(pyqt_enum_workaround): - evt = QKeyEvent(QEvent.Type.KeyPress, 0xd83e, Qt.KeyboardModifier.NoModifier, '🤞🏻') + evt = gui.QKeyEvent(core.QEvent.Type.KeyPress, 0xd83e, core.Qt.KeyboardModifier.NoModifier, '🤞🏻') with pytest.raises(keyutils.KeyParseError), pyqt_enum_workaround(): keyutils.KeyInfo.from_event(evt) @@ -259,11 +256,11 @@ class TestKeySequence: def test_init(self): seq = keyutils.KeySequence( - keyutils.KeyInfo(Qt.Key.Key_A), - keyutils.KeyInfo(Qt.Key.Key_B), - keyutils.KeyInfo(Qt.Key.Key_C), - keyutils.KeyInfo(Qt.Key.Key_D), - keyutils.KeyInfo(Qt.Key.Key_E), + keyutils.KeyInfo(core.Qt.Key.Key_A), + keyutils.KeyInfo(core.Qt.Key.Key_B), + keyutils.KeyInfo(core.Qt.Key.Key_C), + keyutils.KeyInfo(core.Qt.Key.Key_D), + keyutils.KeyInfo(core.Qt.Key.Key_E), ) assert len(seq._sequences) == 2 assert len(seq._sequences[0]) == 4 @@ -273,7 +270,7 @@ class TestKeySequence: seq = keyutils.KeySequence() assert not seq - @pytest.mark.parametrize('key', [Qt.Key.Key_unknown, keyutils._NIL_KEY]) + @pytest.mark.parametrize('key', [core.Qt.Key.Key_unknown, keyutils._NIL_KEY]) def test_init_unknown(self, key): with pytest.raises(keyutils.KeyParseError): keyutils.KeySequence(keyutils.KeyInfo(key)) @@ -304,17 +301,17 @@ class TestKeySequence: assert str(keyutils.KeySequence.parse(orig)) == normalized def test_iter(self): - infos = [keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier), - keyutils.KeyInfo(Qt.Key.Key_B, Qt.KeyboardModifier.ShiftModifier), - keyutils.KeyInfo(Qt.Key.Key_C), - keyutils.KeyInfo(Qt.Key.Key_D), - keyutils.KeyInfo(Qt.Key.Key_E)] + infos = [keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier), + keyutils.KeyInfo(core.Qt.Key.Key_B, core.Qt.KeyboardModifier.ShiftModifier), + keyutils.KeyInfo(core.Qt.Key.Key_C), + keyutils.KeyInfo(core.Qt.Key.Key_D), + keyutils.KeyInfo(core.Qt.Key.Key_E)] seq = keyutils.KeySequence(*infos) assert list(seq) == infos def test_repr(self): - seq = keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier), - keyutils.KeyInfo(Qt.Key.Key_B, Qt.KeyboardModifier.ShiftModifier)) + seq = keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier), + keyutils.KeyInfo(core.Qt.Key.Key_B, core.Qt.KeyboardModifier.ShiftModifier)) assert repr(seq) == ("<qutebrowser.keyinput.keyutils.KeySequence " "keys='<Ctrl+a>B'>") @@ -386,7 +383,7 @@ class TestKeySequence: def test_getitem(self): seq = keyutils.KeySequence.parse('ab') - expected = keyutils.KeyInfo(Qt.Key.Key_B, Qt.KeyboardModifier.NoModifier) + expected = keyutils.KeyInfo(core.Qt.Key.Key_B, core.Qt.KeyboardModifier.NoModifier) assert seq[1] == expected def test_getitem_slice(self): @@ -399,27 +396,27 @@ class TestKeySequence: MATCH_TESTS = [ # config: abcd - ('abc', 'abcd', QKeySequence.SequenceMatch.PartialMatch), - ('abcd', 'abcd', QKeySequence.SequenceMatch.ExactMatch), - ('ax', 'abcd', QKeySequence.SequenceMatch.NoMatch), - ('abcdef', 'abcd', QKeySequence.SequenceMatch.NoMatch), + ('abc', 'abcd', gui.QKeySequence.SequenceMatch.PartialMatch), + ('abcd', 'abcd', gui.QKeySequence.SequenceMatch.ExactMatch), + ('ax', 'abcd', gui.QKeySequence.SequenceMatch.NoMatch), + ('abcdef', 'abcd', gui.QKeySequence.SequenceMatch.NoMatch), # config: abcd ef - ('abc', 'abcdef', QKeySequence.SequenceMatch.PartialMatch), - ('abcde', 'abcdef', QKeySequence.SequenceMatch.PartialMatch), - ('abcd', 'abcdef', QKeySequence.SequenceMatch.PartialMatch), - ('abcdx', 'abcdef', QKeySequence.SequenceMatch.NoMatch), - ('ax', 'abcdef', QKeySequence.SequenceMatch.NoMatch), - ('abcdefg', 'abcdef', QKeySequence.SequenceMatch.NoMatch), - ('abcdef', 'abcdef', QKeySequence.SequenceMatch.ExactMatch), + ('abc', 'abcdef', gui.QKeySequence.SequenceMatch.PartialMatch), + ('abcde', 'abcdef', gui.QKeySequence.SequenceMatch.PartialMatch), + ('abcd', 'abcdef', gui.QKeySequence.SequenceMatch.PartialMatch), + ('abcdx', 'abcdef', gui.QKeySequence.SequenceMatch.NoMatch), + ('ax', 'abcdef', gui.QKeySequence.SequenceMatch.NoMatch), + ('abcdefg', 'abcdef', gui.QKeySequence.SequenceMatch.NoMatch), + ('abcdef', 'abcdef', gui.QKeySequence.SequenceMatch.ExactMatch), # other examples - ('ab', 'a', QKeySequence.SequenceMatch.NoMatch), + ('ab', 'a', gui.QKeySequence.SequenceMatch.NoMatch), # empty strings - ('', '', QKeySequence.SequenceMatch.ExactMatch), - ('', 'a', QKeySequence.SequenceMatch.PartialMatch), - ('a', '', QKeySequence.SequenceMatch.NoMatch)] + ('', '', gui.QKeySequence.SequenceMatch.ExactMatch), + ('', 'a', gui.QKeySequence.SequenceMatch.PartialMatch), + ('a', '', gui.QKeySequence.SequenceMatch.NoMatch)] @pytest.mark.parametrize('entered, configured, match_type', MATCH_TESTS) def test_matches(self, entered, configured, match_type): @@ -428,75 +425,75 @@ class TestKeySequence: assert entered.matches(configured) == match_type @pytest.mark.parametrize('old, key, modifiers, text, expected', [ - ('a', Qt.Key.Key_B, Qt.KeyboardModifier.NoModifier, 'b', 'ab'), - ('a', Qt.Key.Key_B, Qt.KeyboardModifier.ShiftModifier, 'B', 'aB'), - ('a', Qt.Key.Key_B, Qt.KeyboardModifier.AltModifier | Qt.KeyboardModifier.ShiftModifier, 'B', + ('a', core.Qt.Key.Key_B, core.Qt.KeyboardModifier.NoModifier, 'b', 'ab'), + ('a', core.Qt.Key.Key_B, core.Qt.KeyboardModifier.ShiftModifier, 'B', 'aB'), + ('a', core.Qt.Key.Key_B, core.Qt.KeyboardModifier.AltModifier | core.Qt.KeyboardModifier.ShiftModifier, 'B', 'a<Alt+Shift+b>'), # Modifier stripping with symbols - ('', Qt.Key.Key_Colon, Qt.KeyboardModifier.NoModifier, ':', ':'), - ('', Qt.Key.Key_Colon, Qt.KeyboardModifier.ShiftModifier, ':', ':'), - ('', Qt.Key.Key_Colon, Qt.KeyboardModifier.AltModifier | Qt.KeyboardModifier.ShiftModifier, ':', + ('', core.Qt.Key.Key_Colon, core.Qt.KeyboardModifier.NoModifier, ':', ':'), + ('', core.Qt.Key.Key_Colon, core.Qt.KeyboardModifier.ShiftModifier, ':', ':'), + ('', core.Qt.Key.Key_Colon, core.Qt.KeyboardModifier.AltModifier | core.Qt.KeyboardModifier.ShiftModifier, ':', '<Alt+Shift+:>'), # Swapping Control/Meta on macOS - ('', Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier, '', + ('', core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier, '', '<Meta+A>' if utils.is_mac else '<Ctrl+A>'), - ('', Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.ShiftModifier, '', + ('', core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.ShiftModifier, '', '<Meta+Shift+A>' if utils.is_mac else '<Ctrl+Shift+A>'), - ('', Qt.Key.Key_A, Qt.KeyboardModifier.MetaModifier, '', + ('', core.Qt.Key.Key_A, core.Qt.KeyboardModifier.MetaModifier, '', '<Ctrl+A>' if utils.is_mac else '<Meta+A>'), # Handling of Backtab - ('', Qt.Key.Key_Backtab, Qt.KeyboardModifier.NoModifier, '', '<Backtab>'), - ('', Qt.Key.Key_Backtab, Qt.KeyboardModifier.ShiftModifier, '', '<Shift+Tab>'), - ('', Qt.Key.Key_Backtab, Qt.KeyboardModifier.AltModifier | Qt.KeyboardModifier.ShiftModifier, '', + ('', core.Qt.Key.Key_Backtab, core.Qt.KeyboardModifier.NoModifier, '', '<Backtab>'), + ('', core.Qt.Key.Key_Backtab, core.Qt.KeyboardModifier.ShiftModifier, '', '<Shift+Tab>'), + ('', core.Qt.Key.Key_Backtab, core.Qt.KeyboardModifier.AltModifier | core.Qt.KeyboardModifier.ShiftModifier, '', '<Alt+Shift+Tab>'), # Stripping of Qt.KeyboardModifier.GroupSwitchModifier - ('', Qt.Key.Key_A, Qt.KeyboardModifier.GroupSwitchModifier, 'a', 'a'), + ('', core.Qt.Key.Key_A, core.Qt.KeyboardModifier.GroupSwitchModifier, 'a', 'a'), ]) def test_append_event(self, old, key, modifiers, text, expected): seq = keyutils.KeySequence.parse(old) - event = QKeyEvent(QEvent.Type.KeyPress, key, modifiers, text) + event = gui.QKeyEvent(core.QEvent.Type.KeyPress, key, modifiers, text) new = seq.append_event(event) assert new == keyutils.KeySequence.parse(expected) @pytest.mark.fake_os('mac') @pytest.mark.parametrize('modifiers, expected', [ - (Qt.KeyboardModifier.ControlModifier, - Qt.KeyboardModifier.MetaModifier), - (Qt.KeyboardModifier.MetaModifier, - Qt.KeyboardModifier.ControlModifier), - (Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.MetaModifier, - Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.MetaModifier), - (Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.ShiftModifier, - Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.ShiftModifier), - (Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.ShiftModifier, - Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.ShiftModifier), - (Qt.KeyboardModifier.ShiftModifier, Qt.KeyboardModifier.ShiftModifier), + (core.Qt.KeyboardModifier.ControlModifier, + core.Qt.KeyboardModifier.MetaModifier), + (core.Qt.KeyboardModifier.MetaModifier, + core.Qt.KeyboardModifier.ControlModifier), + (core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.MetaModifier, + core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.MetaModifier), + (core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.ShiftModifier, + core.Qt.KeyboardModifier.MetaModifier | core.Qt.KeyboardModifier.ShiftModifier), + (core.Qt.KeyboardModifier.MetaModifier | core.Qt.KeyboardModifier.ShiftModifier, + core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.ShiftModifier), + (core.Qt.KeyboardModifier.ShiftModifier, core.Qt.KeyboardModifier.ShiftModifier), ]) def test_fake_mac(self, modifiers, expected): """Make sure Control/Meta are swapped with a simulated Mac.""" seq = keyutils.KeySequence() - info = keyutils.KeyInfo(key=Qt.Key.Key_A, modifiers=modifiers) + info = keyutils.KeyInfo(key=core.Qt.Key.Key_A, modifiers=modifiers) new = seq.append_event(info.to_event()) - assert new[0] == keyutils.KeyInfo(Qt.Key.Key_A, expected) + assert new[0] == keyutils.KeyInfo(core.Qt.Key.Key_A, expected) - @pytest.mark.parametrize('key', [Qt.Key.Key_unknown, 0x0]) + @pytest.mark.parametrize('key', [core.Qt.Key.Key_unknown, 0x0]) def test_append_event_invalid(self, key): seq = keyutils.KeySequence() - event = QKeyEvent(QEvent.Type.KeyPress, key, Qt.KeyboardModifier.NoModifier, '') + event = gui.QKeyEvent(core.QEvent.Type.KeyPress, key, core.Qt.KeyboardModifier.NoModifier, '') with pytest.raises(keyutils.KeyParseError): seq.append_event(event) def test_strip_modifiers(self): - seq = keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_0), - keyutils.KeyInfo(Qt.Key.Key_1, Qt.KeyboardModifier.KeypadModifier), - keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier)) - expected = keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_0), - keyutils.KeyInfo(Qt.Key.Key_1), - keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.ControlModifier)) + seq = keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_0), + keyutils.KeyInfo(core.Qt.Key.Key_1, core.Qt.KeyboardModifier.KeypadModifier), + keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier)) + expected = keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_0), + keyutils.KeyInfo(core.Qt.Key.Key_1), + keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ControlModifier)) assert seq.strip_modifiers() == expected @pytest.mark.parametrize('inp, mappings, expected', [ @@ -514,31 +511,31 @@ class TestKeySequence: @pytest.mark.parametrize('keystr, expected', [ ('<Ctrl-Alt-y>', - keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Y, Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.AltModifier))), - ('x', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X))), - ('X', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X, Qt.KeyboardModifier.ShiftModifier))), - ('<Escape>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Escape))), - ('xyz', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X), keyutils.KeyInfo(Qt.Key.Key_Y), keyutils.KeyInfo(Qt.Key.Key_Z))), + keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Y, core.Qt.KeyboardModifier.ControlModifier | core.Qt.KeyboardModifier.AltModifier))), + ('x', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X))), + ('X', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X, core.Qt.KeyboardModifier.ShiftModifier))), + ('<Escape>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Escape))), + ('xyz', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X), keyutils.KeyInfo(core.Qt.Key.Key_Y), keyutils.KeyInfo(core.Qt.Key.Key_Z))), ('<Control-x><Meta-y>', - keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X, Qt.KeyboardModifier.ControlModifier), - keyutils.KeyInfo(Qt.Key.Key_Y, Qt.KeyboardModifier.MetaModifier))), - - ('<Shift-x>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X, Qt.KeyboardModifier.ShiftModifier))), - ('<Alt-x>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X, Qt.KeyboardModifier.AltModifier))), - ('<Control-x>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X, Qt.KeyboardModifier.ControlModifier))), - ('<Meta-x>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X, Qt.KeyboardModifier.MetaModifier))), - ('<Num-x>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_X, Qt.KeyboardModifier.KeypadModifier))), - - ('>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Greater))), - ('<', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Less))), - ('a>', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_A), keyutils.KeyInfo(Qt.Key.Key_Greater))), - ('a<', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_A), keyutils.KeyInfo(Qt.Key.Key_Less))), - ('>a', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Greater), keyutils.KeyInfo(Qt.Key.Key_A))), - ('<a', keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Less), keyutils.KeyInfo(Qt.Key.Key_A))), + keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X, core.Qt.KeyboardModifier.ControlModifier), + keyutils.KeyInfo(core.Qt.Key.Key_Y, core.Qt.KeyboardModifier.MetaModifier))), + + ('<Shift-x>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X, core.Qt.KeyboardModifier.ShiftModifier))), + ('<Alt-x>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X, core.Qt.KeyboardModifier.AltModifier))), + ('<Control-x>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X, core.Qt.KeyboardModifier.ControlModifier))), + ('<Meta-x>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X, core.Qt.KeyboardModifier.MetaModifier))), + ('<Num-x>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_X, core.Qt.KeyboardModifier.KeypadModifier))), + + ('>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Greater))), + ('<', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Less))), + ('a>', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_A), keyutils.KeyInfo(core.Qt.Key.Key_Greater))), + ('a<', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_A), keyutils.KeyInfo(core.Qt.Key.Key_Less))), + ('>a', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Greater), keyutils.KeyInfo(core.Qt.Key.Key_A))), + ('<a', keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Less), keyutils.KeyInfo(core.Qt.Key.Key_A))), ('<alt+greater>', - keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Greater, Qt.KeyboardModifier.AltModifier))), + keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Greater, core.Qt.KeyboardModifier.AltModifier))), ('<alt+less>', - keyutils.KeySequence(keyutils.KeyInfo(Qt.Key.Key_Less, Qt.KeyboardModifier.AltModifier))), + keyutils.KeySequence(keyutils.KeyInfo(core.Qt.Key.Key_Less, core.Qt.KeyboardModifier.AltModifier))), ('<alt+<>', keyutils.KeyParseError), ('<alt+>>', keyutils.KeyParseError), @@ -564,67 +561,67 @@ class TestKeySequence: def test_key_info_from_event(): - ev = QKeyEvent(QEvent.Type.KeyPress, Qt.Key.Key_A, Qt.KeyboardModifier.ShiftModifier, 'A') + ev = gui.QKeyEvent(core.QEvent.Type.KeyPress, core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ShiftModifier, 'A') info = keyutils.KeyInfo.from_event(ev) - assert info.key == Qt.Key.Key_A - assert info.modifiers == Qt.KeyboardModifier.ShiftModifier + assert info.key == core.Qt.Key.Key_A + assert info.modifiers == core.Qt.KeyboardModifier.ShiftModifier def test_key_info_to_event(): - info = keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.ShiftModifier) + info = keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ShiftModifier) ev = info.to_event() - assert ev.key() == Qt.Key.Key_A - assert ev.modifiers() == Qt.KeyboardModifier.ShiftModifier + assert ev.key() == core.Qt.Key.Key_A + assert ev.modifiers() == core.Qt.KeyboardModifier.ShiftModifier assert ev.text() == 'A' def test_key_info_to_qt(): - info = keyutils.KeyInfo(Qt.Key.Key_A, Qt.KeyboardModifier.ShiftModifier) - assert info.to_qt() == Qt.Key.Key_A | Qt.KeyboardModifier.ShiftModifier + info = keyutils.KeyInfo(core.Qt.Key.Key_A, core.Qt.KeyboardModifier.ShiftModifier) + assert info.to_qt() == core.Qt.Key.Key_A | core.Qt.KeyboardModifier.ShiftModifier @pytest.mark.parametrize('key, printable', [ - (Qt.Key.Key_Control, False), - (Qt.Key.Key_Escape, False), - (Qt.Key.Key_Tab, False), - (Qt.Key.Key_Backtab, False), - (Qt.Key.Key_Backspace, False), - (Qt.Key.Key_Return, False), - (Qt.Key.Key_Enter, False), - (Qt.Key.Key_Space, False), + (core.Qt.Key.Key_Control, False), + (core.Qt.Key.Key_Escape, False), + (core.Qt.Key.Key_Tab, False), + (core.Qt.Key.Key_Backtab, False), + (core.Qt.Key.Key_Backspace, False), + (core.Qt.Key.Key_Return, False), + (core.Qt.Key.Key_Enter, False), + (core.Qt.Key.Key_Space, False), (0x0, False), # Used by Qt for unknown keys - (Qt.Key.Key_ydiaeresis, True), - (Qt.Key.Key_X, True), + (core.Qt.Key.Key_ydiaeresis, True), + (core.Qt.Key.Key_X, True), ]) def test_is_printable(key, printable): assert keyutils._is_printable(key) == printable - info = keyutils.KeyInfo(key, Qt.KeyboardModifier.NoModifier) + info = keyutils.KeyInfo(key, core.Qt.KeyboardModifier.NoModifier) assert info.is_special() != printable @pytest.mark.parametrize('key, modifiers, special', [ - (Qt.Key.Key_Escape, Qt.KeyboardModifier.NoModifier, True), - (Qt.Key.Key_Escape, Qt.KeyboardModifier.ShiftModifier, True), - (Qt.Key.Key_Escape, Qt.KeyboardModifier.ControlModifier, True), - (Qt.Key.Key_X, Qt.KeyboardModifier.ControlModifier, True), - (Qt.Key.Key_X, Qt.KeyboardModifier.NoModifier, False), - (Qt.Key.Key_2, Qt.KeyboardModifier.KeypadModifier, True), - (Qt.Key.Key_2, Qt.KeyboardModifier.NoModifier, False), - (Qt.Key.Key_Shift, Qt.KeyboardModifier.ShiftModifier, True), - (Qt.Key.Key_Control, Qt.KeyboardModifier.ControlModifier, True), - (Qt.Key.Key_Alt, Qt.KeyboardModifier.AltModifier, True), - (Qt.Key.Key_Meta, Qt.KeyboardModifier.MetaModifier, True), - (Qt.Key.Key_Mode_switch, Qt.KeyboardModifier.GroupSwitchModifier, True), + (core.Qt.Key.Key_Escape, core.Qt.KeyboardModifier.NoModifier, True), + (core.Qt.Key.Key_Escape, core.Qt.KeyboardModifier.ShiftModifier, True), + (core.Qt.Key.Key_Escape, core.Qt.KeyboardModifier.ControlModifier, True), + (core.Qt.Key.Key_X, core.Qt.KeyboardModifier.ControlModifier, True), + (core.Qt.Key.Key_X, core.Qt.KeyboardModifier.NoModifier, False), + (core.Qt.Key.Key_2, core.Qt.KeyboardModifier.KeypadModifier, True), + (core.Qt.Key.Key_2, core.Qt.KeyboardModifier.NoModifier, False), + (core.Qt.Key.Key_Shift, core.Qt.KeyboardModifier.ShiftModifier, True), + (core.Qt.Key.Key_Control, core.Qt.KeyboardModifier.ControlModifier, True), + (core.Qt.Key.Key_Alt, core.Qt.KeyboardModifier.AltModifier, True), + (core.Qt.Key.Key_Meta, core.Qt.KeyboardModifier.MetaModifier, True), + (core.Qt.Key.Key_Mode_switch, core.Qt.KeyboardModifier.GroupSwitchModifier, True), ]) def test_is_special(key, modifiers, special): assert keyutils.KeyInfo(key, modifiers).is_special() == special @pytest.mark.parametrize('key, ismodifier', [ - (Qt.Key.Key_Control, True), - (Qt.Key.Key_X, False), - (Qt.Key.Key_Super_L, False), # Modifier but not in _MODIFIER_MAP + (core.Qt.Key.Key_Control, True), + (core.Qt.Key.Key_X, False), + (core.Qt.Key.Key_Super_L, False), # Modifier but not in _MODIFIER_MAP ]) def test_is_modifier_key(key, ismodifier): assert keyutils.KeyInfo(key).is_modifier_key() == ismodifier @@ -639,7 +636,7 @@ def test_is_modifier_key(key, ismodifier): keyutils.KeyInfo, ]) def test_non_plain(func): - comb = Qt.Key.Key_X | Qt.KeyboardModifier.ControlModifier + comb = core.Qt.Key.Key_X | core.Qt.KeyboardModifier.ControlModifier if machinery.IS_QT6: # QKeyCombination comb = comb.toCombined() |