Fix test_keyutils
This commit is contained in:
parent
5a03d31f6f
commit
911b2daebf
@ -396,6 +396,7 @@ class KeySequence:
|
|||||||
new._sequences.append(sequence)
|
new._sequences.append(sequence)
|
||||||
|
|
||||||
if keystr:
|
if keystr:
|
||||||
|
# FIXME fails with "<ctrl-x"
|
||||||
assert len(new) > 0
|
assert len(new) > 0
|
||||||
|
|
||||||
new._validate(keystr)
|
new._validate(keystr)
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt5.QtCore import Qt
|
||||||
|
|
||||||
|
from qutebrowser.utils import utils
|
||||||
from qutebrowser.keyinput import keyutils
|
from qutebrowser.keyinput import keyutils
|
||||||
|
|
||||||
|
|
||||||
@ -65,13 +66,13 @@ class TestKeyEventToString:
|
|||||||
"""Test keyeevent when only control is pressed."""
|
"""Test keyeevent when only control is pressed."""
|
||||||
evt = fake_keyevent_factory(key=Qt.Key_Control,
|
evt = fake_keyevent_factory(key=Qt.Key_Control,
|
||||||
modifiers=Qt.ControlModifier)
|
modifiers=Qt.ControlModifier)
|
||||||
assert keyutils.keyevent_to_string(evt) is None
|
assert not keyutils.keyevent_to_string(evt)
|
||||||
|
|
||||||
def test_only_hyper_l(self, fake_keyevent_factory):
|
def test_only_hyper_l(self, fake_keyevent_factory):
|
||||||
"""Test keyeevent when only Hyper_L is pressed."""
|
"""Test keyeevent when only Hyper_L is pressed."""
|
||||||
evt = fake_keyevent_factory(key=Qt.Key_Hyper_L,
|
evt = fake_keyevent_factory(key=Qt.Key_Hyper_L,
|
||||||
modifiers=Qt.MetaModifier)
|
modifiers=Qt.MetaModifier)
|
||||||
assert keyutils.keyevent_to_string(evt) is None
|
assert not keyutils.keyevent_to_string(evt)
|
||||||
|
|
||||||
def test_only_key(self, fake_keyevent_factory):
|
def test_only_key(self, fake_keyevent_factory):
|
||||||
"""Test with a simple key pressed."""
|
"""Test with a simple key pressed."""
|
||||||
@ -81,7 +82,7 @@ class TestKeyEventToString:
|
|||||||
def test_key_and_modifier(self, fake_keyevent_factory):
|
def test_key_and_modifier(self, fake_keyevent_factory):
|
||||||
"""Test with key and modifier pressed."""
|
"""Test with key and modifier pressed."""
|
||||||
evt = fake_keyevent_factory(key=Qt.Key_A, modifiers=Qt.ControlModifier)
|
evt = fake_keyevent_factory(key=Qt.Key_A, modifiers=Qt.ControlModifier)
|
||||||
expected = 'meta+a' if keyutils.is_mac else 'ctrl+a'
|
expected = '<Meta+a>' if utils.is_mac else '<Ctrl+a>'
|
||||||
assert keyutils.keyevent_to_string(evt) == expected
|
assert keyutils.keyevent_to_string(evt) == expected
|
||||||
|
|
||||||
def test_key_and_modifiers(self, fake_keyevent_factory):
|
def test_key_and_modifiers(self, fake_keyevent_factory):
|
||||||
@ -89,13 +90,13 @@ class TestKeyEventToString:
|
|||||||
evt = fake_keyevent_factory(
|
evt = fake_keyevent_factory(
|
||||||
key=Qt.Key_A, modifiers=(Qt.ControlModifier | Qt.AltModifier |
|
key=Qt.Key_A, modifiers=(Qt.ControlModifier | Qt.AltModifier |
|
||||||
Qt.MetaModifier | Qt.ShiftModifier))
|
Qt.MetaModifier | Qt.ShiftModifier))
|
||||||
assert keyutils.keyevent_to_string(evt) == 'ctrl+alt+meta+shift+a'
|
assert keyutils.keyevent_to_string(evt) == '<Ctrl+Alt+Meta+Shift+a>'
|
||||||
|
|
||||||
@pytest.mark.fake_os('mac')
|
@pytest.mark.fake_os('mac')
|
||||||
def test_mac(self, fake_keyevent_factory):
|
def test_mac(self, fake_keyevent_factory):
|
||||||
"""Test with a simulated mac."""
|
"""Test with a simulated mac."""
|
||||||
evt = fake_keyevent_factory(key=Qt.Key_A, modifiers=Qt.ControlModifier)
|
evt = fake_keyevent_factory(key=Qt.Key_A, modifiers=Qt.ControlModifier)
|
||||||
assert keyutils.keyevent_to_string(evt) == 'meta+a'
|
assert keyutils.keyevent_to_string(evt) == '<Meta+a>'
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('keystr, expected', [
|
@pytest.mark.parametrize('keystr, expected', [
|
||||||
@ -115,21 +116,21 @@ class TestKeyEventToString:
|
|||||||
def test_parse(keystr, expected):
|
def test_parse(keystr, expected):
|
||||||
if expected is keyutils.KeyParseError:
|
if expected is keyutils.KeyParseError:
|
||||||
with pytest.raises(keyutils.KeyParseError):
|
with pytest.raises(keyutils.KeyParseError):
|
||||||
keyutils._parse_single_key(keystr)
|
keyutils.KeySequence.parse(keystr)
|
||||||
else:
|
else:
|
||||||
assert keyutils._parse_single_key(keystr) == expected
|
assert keyutils.KeySequence.parse(keystr) == expected
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('orig, repl', [
|
@pytest.mark.parametrize('orig, normalized', [
|
||||||
('Control+x', 'ctrl+x'),
|
('<Control+x>', '<ctrl+x>'),
|
||||||
('Windows+x', 'meta+x'),
|
('<Windows+x>', '<meta+x>'),
|
||||||
('Mod1+x', 'alt+x'),
|
('<Mod1+x>', '<alt+x>'),
|
||||||
('Mod4+x', 'meta+x'),
|
('<Mod4+x>', '<meta+x>'),
|
||||||
('Control--', 'ctrl+-'),
|
('<Control-->', '<ctrl+->'),
|
||||||
('Windows++', 'meta++'),
|
('<Windows++>', '<meta++>'),
|
||||||
('ctrl-x', 'ctrl+x'),
|
('<ctrl-x>', '<ctrl+x>'),
|
||||||
('control+x', 'ctrl+x')
|
('<control+x>', '<ctrl+x>')
|
||||||
])
|
])
|
||||||
def test_normalize_keystr(orig, repl):
|
def test_normalize_keystr(orig, normalized):
|
||||||
assert keyutils.KeySequence(orig) == repl
|
expected = keyutils.KeySequence.parse(normalized)
|
||||||
|
assert keyutils.KeySequence.parse(orig) == expected
|
||||||
|
Loading…
Reference in New Issue
Block a user