Files
macropad/tests.py

41 lines
1.9 KiB
Python

from keytypes import Keycode, Modifier
def test_keymap(keymap: list[list], output: bool = False) -> None:
if output:
print("Testing keymap for errors")
for layer in keymap:
for key in layer:
if isinstance(key, Keycode) or isinstance(key, Modifier):
print(
f"[{keymap.index(layer)}][{layer.index(key)}] {key.__class__.__name__}", end=": ")
key.self_test(keymap)
print("Valid")
continue
# if isinstance(key, Modifier):
# print(
# f"key is Modifier [{keymap.index(layer)}][{layer.index(key)}]", end=".. ")
# if key.keycode in valid_modifiers:
# print("and is valid")
# else:
# raise Exception()
# continue
# if isinstance(key, LayerKey):
# layer_key_name = key.__class__.__name__
# if output:
# print(
# f"key is {layer_key_name} [{keymap.index(layer)}][{layer.index(key)}]", end=".. ")
# key_on_layer_to_switch_to = keymap[key.layer][layer.index(key)]
# key_is_not_hold = type(
# key_on_layer_to_switch_to) is not type(key)
# hold_key_is_not_same_layer = type(
# key_on_layer_to_switch_to) is type(key) and key_on_layer_to_switch_to.layer != key.layer
# if key_is_not_hold or hold_key_is_not_same_layer:
# raise Exception(
# f"{layer_key_name} layer key on layer[{keymap.index(layer)}] key[{layer.index(key)}] must have an identical {layer_key_name} layer key on layer[{key.layer}] key[{layer.index(key)}]")
# else:
# if output:
# print("and is valid")
if output:
print("Done testing keymap")