kmk_firmware/tests/test_autoshift.py
2023-04-09 22:36:25 +00:00

92 lines
2.3 KiB
Python

import unittest
from kmk.keys import KC
from kmk.modules.autoshift import Autoshift
from tests.keyboard_test import KeyboardTest
tap_time = 3 * KeyboardTest.loop_delay_ms
t_after = 4 * KeyboardTest.loop_delay_ms
class TestAutoshift(unittest.TestCase):
def setUp(self):
self.kb = KeyboardTest(
[Autoshift(tap_time=tap_time)],
[
[
KC.A,
KC.N1,
KC.HASH,
KC.NO,
]
],
debug_enabled=False,
)
def test_tap_alpha(self):
self.kb.test(
'',
[(0, True), (0, False)],
[{KC.A}, {}],
)
def test_hold_alpha(self):
self.kb.test(
'',
[(0, True), t_after, (0, False)],
[{KC.A, KC.LSHIFT}, {}],
)
def test_hold_num(self):
self.kb.test(
'',
[(1, True), t_after, (1, False)],
[{KC.N1}, {}],
)
def test_hold_alpha_tap_num_within(self):
self.kb.test(
'',
[(0, True), (1, True), t_after, (1, False), (0, False)],
[{KC.A}, {KC.A, KC.N1}, {KC.A}, {}],
)
def test_hold_alpha_tap_num_after(self):
self.kb.test(
'',
[(0, True), t_after, (1, True), (1, False), (0, False)],
[{KC.A, KC.LSHIFT}, {KC.A, KC.N1}, {KC.A}, {}],
)
def test_hold_num_hold_alpha(self):
self.kb.test(
'',
[(1, True), (0, True), t_after, (0, False), (1, False)],
[{KC.N1}, {KC.N1, KC.A, KC.LSHIFT}, {KC.N1}, {}],
)
def test_roll_num_hold_alpha(self):
self.kb.test(
'',
[(1, True), (0, True), (1, False), t_after, (0, False)],
[{KC.N1}, {}, {KC.A, KC.LSHIFT}, {}],
)
def test_hold_shifted_hold_alpha(self):
self.kb.test(
'',
[(2, True), (0, True), t_after, (2, False), (0, False)],
[{KC.LSHIFT, KC.HASH}, {KC.LSHIFT, KC.HASH, KC.A}, {KC.A}, {}],
)
def test_hold_internal(self):
self.kb.test(
'',
[(3, True), t_after, (3, False)],
[],
)
if __name__ == '__main__':
unittest.main()