summaryrefslogtreecommitdiff
path: root/tests/unit/keyinput/test_keyutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/keyinput/test_keyutils.py')
-rw-r--r--tests/unit/keyinput/test_keyutils.py327
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()