Another shot at squishing this bug.

This commit is contained in:
Storm Dragon
2026-05-12 18:30:23 -04:00
parent fa63ecadbe
commit 5dccdd27c4
3 changed files with 80 additions and 13 deletions
+36 -3
View File
@@ -201,16 +201,49 @@ def test_x11_optional_modifier_masks_can_exclude_numlock():
@pytest.mark.unit
def test_x11_get_led_state_reads_lock_modifiers_from_pointer_mask():
def test_x11_get_led_state_reads_cached_lock_modifiers_without_x_round_trip():
x11 = X11Driver()
x11.num_lock_mask = X.Mod2Mask
pointer = Mock(mask=X.Mod2Mask | X.LockMask)
x11.modifier_state = X.Mod2Mask | X.LockMask
x11.root = Mock()
x11.root.query_pointer.return_value = pointer
assert x11.get_led_state(0) is True
assert x11.get_led_state(1) is True
assert x11.get_led_state(2) is False
x11.root.query_pointer.assert_not_called()
@pytest.mark.unit
def test_x11_update_modifier_state_tracks_event_masks_and_lock_toggles():
x11 = X11Driver()
x11.num_lock_mask = X.Mod2Mask
x11.update_modifier_state_from_event(
{
"event_name": "KEY_KP8",
"event_state": 1,
"event_raw_state": X.Mod2Mask,
}
)
assert x11.get_led_state(0) is True
x11.update_modifier_state_from_event(
{
"event_name": "KEY_NUMLOCK",
"event_state": 1,
"event_raw_state": X.Mod2Mask,
}
)
assert x11.get_led_state(0) is False
x11.update_modifier_state_from_event(
{
"event_name": "KEY_CAPSLOCK",
"event_state": 1,
"event_raw_state": 0,
}
)
assert x11.get_led_state(1) is True
@pytest.mark.unit