Fix stuff, apply ruff rules.
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
"""Regression tests for keybinding API compatibility."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from cthulhu import keybindings
|
||||
|
||||
|
||||
class DummyHandler:
|
||||
description = "dummy handler"
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_keybinding_accepts_lightweight_command_manager_form():
|
||||
binding = keybindings.KeyBinding("KP_Divide", keybindings.CTHULHU_MODIFIER_MASK)
|
||||
|
||||
assert binding.keysymstring == "KP_Divide"
|
||||
assert binding.modifier_mask == keybindings.defaultModifierMask
|
||||
assert binding.modifiers == keybindings.CTHULHU_MODIFIER_MASK
|
||||
assert binding.handler is None
|
||||
assert binding.click_count == 1
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_keybinding_accepts_lightweight_positional_click_count():
|
||||
binding = keybindings.KeyBinding("a", keybindings.CTHULHU_MODIFIER_MASK, 2)
|
||||
|
||||
assert binding.modifier_mask == keybindings.defaultModifierMask
|
||||
assert binding.modifiers == keybindings.CTHULHU_MODIFIER_MASK
|
||||
assert binding.click_count == 2
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_keybinding_preserves_legacy_handler_form():
|
||||
handler = DummyHandler()
|
||||
|
||||
binding = keybindings.KeyBinding(
|
||||
"b",
|
||||
keybindings.defaultModifierMask,
|
||||
keybindings.CTHULHU_SHIFT_MODIFIER_MASK,
|
||||
handler,
|
||||
3,
|
||||
)
|
||||
|
||||
assert binding.modifier_mask == keybindings.defaultModifierMask
|
||||
assert binding.modifiers == keybindings.CTHULHU_SHIFT_MODIFIER_MASK
|
||||
assert binding.handler is handler
|
||||
assert binding.click_count == 3
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_keybinding_exposes_command_manager_helpers():
|
||||
binding = keybindings.KeyBinding("c", keybindings.CTHULHU_MODIFIER_MASK)
|
||||
|
||||
assert keybindings.get_modifier_names is keybindings.getModifierNames
|
||||
assert keybindings.CTHULHU_ALT_SHIFT_MODIFIER_MASK == (
|
||||
keybindings.CTHULHU_MODIFIER_MASK
|
||||
| keybindings.ALT_MODIFIER_MASK
|
||||
| keybindings.SHIFT_MODIFIER_MASK
|
||||
)
|
||||
binding.set_grab_ids([42])
|
||||
assert binding.get_grab_ids() == [42]
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_keybinding_add_grabs_accepts_explicit_cthulhu_modifiers(monkeypatch):
|
||||
binding = keybindings.KeyBinding("d", keybindings.CTHULHU_MODIFIER_MASK)
|
||||
captured = {}
|
||||
|
||||
class FakeInputEventManager:
|
||||
def add_grabs_for_keybinding(self, grab_binding, cthulhu_modifiers):
|
||||
captured["binding"] = grab_binding
|
||||
captured["cthulhu_modifiers"] = cthulhu_modifiers
|
||||
return [7]
|
||||
|
||||
from cthulhu import input_event_manager
|
||||
|
||||
monkeypatch.setattr(
|
||||
input_event_manager,
|
||||
"get_manager",
|
||||
lambda: FakeInputEventManager(),
|
||||
)
|
||||
|
||||
binding.add_grabs(["Insert"])
|
||||
|
||||
assert captured == {"binding": binding, "cthulhu_modifiers": ["Insert"]}
|
||||
assert binding.get_grab_ids() == [7]
|
||||
Reference in New Issue
Block a user