From 92f13ad189203d0d7e557d26668d5dc17a1db5a9 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Mon, 22 Mar 2021 11:53:59 -0400 Subject: [PATCH] keycodes: fix keycode serialization for layered keycodes --- src/main/python/keycodes.py | 2 +- src/main/python/test/test_keycode.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/python/keycodes.py b/src/main/python/keycodes.py index d42a71c..f7df775 100644 --- a/src/main/python/keycodes.py +++ b/src/main/python/keycodes.py @@ -89,7 +89,7 @@ class Keycode: outer = cls.find_outer_keycode(code) inner = cls.find(code & 0xFF) if outer is not None and inner is not None: - return outer.qmk_id.replace("(kc)", "({})".format(inner.qmk_id)) + return outer.qmk_id.replace("kc", inner.qmk_id) return code @classmethod diff --git a/src/main/python/test/test_keycode.py b/src/main/python/test/test_keycode.py index 1962213..a009b10 100644 --- a/src/main/python/test/test_keycode.py +++ b/src/main/python/test/test_keycode.py @@ -1,11 +1,20 @@ import unittest -from keycodes import Keycode +from keycodes import Keycode, recreate_keyboard_keycodes + + +class FakeKeyboard: + + layers = 4 + macro_count = 16 + class TestKeycode(unittest.TestCase): def test_serialize(self): + recreate_keyboard_keycodes(FakeKeyboard()) + # at a minimum, we should be able to deserialize/serialize everything for x in range(2 ** 16): s = Keycode.serialize(x)