summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2024-11-24 20:32:30 +1100
committerGitHub <noreply@github.com>2024-11-24 20:32:30 +1100
commit7d8f193988495deb0e12ad79d5104d30c0724bf9 (patch)
treebff63d89048b699e393e8f65ec1c059f0d953d0c
parent859dab864a0738f577d1da8e7189748ed8109c44 (diff)
Allow codegen of `keymap.json` => `keymap.c` without requiring layers/layout etc. (#23451)
-rw-r--r--builddefs/build_keyboard.mk5
-rw-r--r--data/schemas/keymap.jsonschema7
-rw-r--r--keyboards/handwired/onekey/info.json3
-rw-r--r--keyboards/handwired/onekey/kb2040/config.h5
-rw-r--r--keyboards/handwired/onekey/keymaps/adc/keymap.json10
-rw-r--r--keyboards/handwired/onekey/keymaps/adc/rules.mk2
-rw-r--r--keyboards/handwired/onekey/keymaps/apa102/config.h14
-rw-r--r--keyboards/handwired/onekey/keymaps/apa102/keymap.json29
-rw-r--r--keyboards/handwired/onekey/keymaps/apa102/rules.mk2
-rw-r--r--keyboards/handwired/onekey/keymaps/backlight/config.h3
-rw-r--r--keyboards/handwired/onekey/keymaps/backlight/keymap.json14
-rw-r--r--keyboards/handwired/onekey/keymaps/backlight/rules.mk2
-rw-r--r--keyboards/handwired/onekey/keymaps/console/keymap.json8
-rw-r--r--keyboards/handwired/onekey/keymaps/console/rules.mk2
-rw-r--r--keyboards/handwired/onekey/keymaps/default/keymap.json7
-rw-r--r--keyboards/handwired/onekey/rp2040/config.h3
-rw-r--r--keyboards/handwired/pterodactyl/keymaps/default/keymap.c2
-rw-r--r--keyboards/handwired/pterodactyl/keymaps/default/keymap.json43
-rw-r--r--lib/python/qmk/commands.py2
-rw-r--r--lib/python/qmk/keymap.py29
-rw-r--r--lib/python/qmk/tests/test_cli_commands.py24
-rw-r--r--lib/python/qmk/tests/test_qmk_keymap.py9
22 files changed, 105 insertions, 120 deletions
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index ccd7e50b05..afad67a76d 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -186,7 +186,10 @@ endif
186# Have we found a keymap.json? 186# Have we found a keymap.json?
187ifneq ("$(wildcard $(KEYMAP_JSON))", "") 187ifneq ("$(wildcard $(KEYMAP_JSON))", "")
188 ifneq ("$(wildcard $(KEYMAP_C))", "") 188 ifneq ("$(wildcard $(KEYMAP_C))", "")
189 $(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.) 189 # Allow a separately-found keymap.c next to keymap.json -- the keymap.c
190 # generator will include the other keymap.c in the process, if supplied.
191 OTHER_KEYMAP_C := $(KEYMAP_C)
192 OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\"
190 endif 193 endif
191 194
192 KEYMAP_PATH := $(KEYMAP_JSON_PATH) 195 KEYMAP_PATH := $(KEYMAP_JSON_PATH)
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index 7233e896e9..e967e45c53 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -72,10 +72,5 @@
72 "notes": { 72 "notes": {
73 "type": "string" 73 "type": "string"
74 } 74 }
75 }, 75 }
76 "required": [
77 "keyboard",
78 "layout",
79 "layers"
80 ]
81} 76}
diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json
index c952758265..5cf7c600ee 100644
--- a/keyboards/handwired/onekey/info.json
+++ b/keyboards/handwired/onekey/info.json
@@ -7,9 +7,6 @@
7 "pid": "0x6465", 7 "pid": "0x6465",
8 "device_version": "0.0.1" 8 "device_version": "0.0.1"
9 }, 9 },
10 "tapping": {
11 "term": 500
12 },
13 "diode_direction": "COL2ROW", 10 "diode_direction": "COL2ROW",
14 "features": { 11 "features": {
15 "bootmagic": false, 12 "bootmagic": false,
diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h
index e0bf180056..e9c4eef273 100644
--- a/keyboards/handwired/onekey/kb2040/config.h
+++ b/keyboards/handwired/onekey/kb2040/config.h
@@ -3,9 +3,6 @@
3 3
4#pragma once 4#pragma once
5 5
6
7#define DEBUG_MATRIX_SCAN_RATE
8
9#define QMK_WAITING_TEST_BUSY_PIN GP8 6#define QMK_WAITING_TEST_BUSY_PIN GP8
10#define QMK_WAITING_TEST_YIELD_PIN GP9 7#define QMK_WAITING_TEST_YIELD_PIN GP9
11 8
@@ -18,4 +15,4 @@
18#define I2C_DRIVER I2CD0 15#define I2C_DRIVER I2CD0
19#define I2C1_SDA_PIN GP12 16#define I2C1_SDA_PIN GP12
20#define I2C1_SCL_PIN GP13 17#define I2C1_SCL_PIN GP13
21 18
diff --git a/keyboards/handwired/onekey/keymaps/adc/keymap.json b/keyboards/handwired/onekey/keymaps/adc/keymap.json
new file mode 100644
index 0000000000..e051d1a30b
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/adc/keymap.json
@@ -0,0 +1,10 @@
1{
2 "config": {
3 "features": {
4 "console": true
5 },
6 "tapping": {
7 "term": 500
8 }
9 }
10}
diff --git a/keyboards/handwired/onekey/keymaps/adc/rules.mk b/keyboards/handwired/onekey/keymaps/adc/rules.mk
index 8b36baccb0..cc58820278 100644
--- a/keyboards/handwired/onekey/keymaps/adc/rules.mk
+++ b/keyboards/handwired/onekey/keymaps/adc/rules.mk
@@ -1,3 +1 @@
1CONSOLE_ENABLE = yes
2
3ANALOG_DRIVER_REQUIRED = yes ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/handwired/onekey/keymaps/apa102/config.h b/keyboards/handwired/onekey/keymaps/apa102/config.h
deleted file mode 100644
index bb618d77fb..0000000000
--- a/keyboards/handwired/onekey/keymaps/apa102/config.h
+++ /dev/null
@@ -1,14 +0,0 @@
1#pragma once
2
3#define RGBLIGHT_LED_COUNT 40
4#define APA102_DEFAULT_BRIGHTNESS 5
5#define RGBLIGHT_EFFECT_BREATHING
6#define RGBLIGHT_EFFECT_RAINBOW_MOOD
7#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
8#define RGBLIGHT_EFFECT_SNAKE
9#define RGBLIGHT_EFFECT_KNIGHT
10#define RGBLIGHT_EFFECT_CHRISTMAS
11#define RGBLIGHT_EFFECT_STATIC_GRADIENT
12#define RGBLIGHT_EFFECT_RGB_TEST
13#define RGBLIGHT_EFFECT_ALTERNATING
14#define RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/handwired/onekey/keymaps/apa102/keymap.json b/keyboards/handwired/onekey/keymaps/apa102/keymap.json
new file mode 100644
index 0000000000..917d39eb33
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/apa102/keymap.json
@@ -0,0 +1,29 @@
1{
2 "config": {
3 "features": {
4 "rgblight": true
5 },
6 "tapping": {
7 "term": 500
8 },
9 "rgblight": {
10 "driver": "apa102",
11 "led_count": 40,
12 "default": {
13 "val": 5
14 },
15 "animations": {
16 "breathing": true,
17 "rainbow_mood": true,
18 "rainbow_swirl": true,
19 "snake": true,
20 "knight": true,
21 "christmas": true,
22 "static_gradient": true,
23 "rgb_test": true,
24 "alternating": true,
25 "twinkle": true
26 }
27 }
28 }
29}
diff --git a/keyboards/handwired/onekey/keymaps/apa102/rules.mk b/keyboards/handwired/onekey/keymaps/apa102/rules.mk
deleted file mode 100644
index 5f15fa9e70..0000000000
--- a/keyboards/handwired/onekey/keymaps/apa102/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
1RGBLIGHT_ENABLE = yes
2RGBLIGHT_DRIVER = apa102
diff --git a/keyboards/handwired/onekey/keymaps/backlight/config.h b/keyboards/handwired/onekey/keymaps/backlight/config.h
deleted file mode 100644
index af01528b43..0000000000
--- a/keyboards/handwired/onekey/keymaps/backlight/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
1#pragma once
2
3#define BACKLIGHT_BREATHING
diff --git a/keyboards/handwired/onekey/keymaps/backlight/keymap.json b/keyboards/handwired/onekey/keymaps/backlight/keymap.json
new file mode 100644
index 0000000000..e8895520cd
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/backlight/keymap.json
@@ -0,0 +1,14 @@
1{
2 "config": {
3 "features": {
4 "backlight": true,
5 "tap_dance": true
6 },
7 "tapping": {
8 "term": 500
9 },
10 "backlight": {
11 "breathing": true
12 }
13 }
14}
diff --git a/keyboards/handwired/onekey/keymaps/backlight/rules.mk b/keyboards/handwired/onekey/keymaps/backlight/rules.mk
deleted file mode 100644
index 176e099770..0000000000
--- a/keyboards/handwired/onekey/keymaps/backlight/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
1BACKLIGHT_ENABLE = yes
2TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/onekey/keymaps/console/keymap.json b/keyboards/handwired/onekey/keymaps/console/keymap.json
new file mode 100644
index 0000000000..f451f7df04
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/console/keymap.json
@@ -0,0 +1,8 @@
1{
2 "config": {
3 "features": {
4 "console": true,
5 "debug_matrix_scan_rate": true
6 }
7 }
8}
diff --git a/keyboards/handwired/onekey/keymaps/console/rules.mk b/keyboards/handwired/onekey/keymaps/console/rules.mk
deleted file mode 100644
index 7c83606d2d..0000000000
--- a/keyboards/handwired/onekey/keymaps/console/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
1CONSOLE_ENABLE = yes
2DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
diff --git a/keyboards/handwired/onekey/keymaps/default/keymap.json b/keyboards/handwired/onekey/keymaps/default/keymap.json
new file mode 100644
index 0000000000..5cd219693a
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/default/keymap.json
@@ -0,0 +1,7 @@
1{
2 "config": {
3 "tapping": {
4 "term": 500
5 }
6 }
7}
diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h
index 0563ebfa5f..0030e97b0f 100644
--- a/keyboards/handwired/onekey/rp2040/config.h
+++ b/keyboards/handwired/onekey/rp2040/config.h
@@ -3,9 +3,6 @@
3 3
4#pragma once 4#pragma once
5 5
6
7#define DEBUG_MATRIX_SCAN_RATE
8
9#define QMK_WAITING_TEST_BUSY_PIN GP8 6#define QMK_WAITING_TEST_BUSY_PIN GP8
10#define QMK_WAITING_TEST_YIELD_PIN GP9 7#define QMK_WAITING_TEST_YIELD_PIN GP9
11 8
diff --git a/keyboards/handwired/pterodactyl/keymaps/default/keymap.c b/keyboards/handwired/pterodactyl/keymaps/default/keymap.c
index 61d650c76b..c53f6841ce 100644
--- a/keyboards/handwired/pterodactyl/keymaps/default/keymap.c
+++ b/keyboards/handwired/pterodactyl/keymaps/default/keymap.c
@@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
54 * |------+------+------+------+------+------| |------+------+------+------+------+------| 54 * |------+------+------+------+------+------| |------+------+------+------+------+------|
55 * | | % | ^ | [ | ] | ~ | | & | 1 | 2 | 3 | \ | | 55 * | | % | ^ | [ | ] | ~ | | & | 1 | 2 | 3 | \ | |
56 * |------+------+------+------+------+------' `------+------+------+------+------+------| 56 * |------+------+------+------+------+------' `------+------+------+------+------+------|
57 * |QK_BOOT | | | | | | | . | 0 | = | | 57 * |BtLdr | | | | | | | . | 0 | = | |
58 * `----------------------------------' `----------------------------------' 58 * `----------------------------------' `----------------------------------'
59 * ,-------------. ,-------------. 59 * ,-------------. ,-------------.
60 * | | | | | | 60 * | | | | | |
diff --git a/keyboards/handwired/pterodactyl/keymaps/default/keymap.json b/keyboards/handwired/pterodactyl/keymaps/default/keymap.json
deleted file mode 100644
index 181b32b8c3..0000000000
--- a/keyboards/handwired/pterodactyl/keymaps/default/keymap.json
+++ /dev/null
@@ -1,43 +0,0 @@
1{
2 "version": 1,
3 "notes": "",
4 "author": "Marcus Young",
5 "keyboard": "handwired/pterodactyl",
6 "keymap": "default",
7 "layout": "LAYOUT",
8 "layers": [
9 [
10 "KC_EQL", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS",
11 "KC_DEL", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS",
12 "KC_BSPC", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "LT(2,KC_SCLN)", "LGUI_T(KC_QUOT)",
13 "KC_LSFT", "LCTL_T(KC_Z)", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "LCTL_T(KC_SLSH)", "KC_RSFT",
14 "LT(1,KC_GRV)", "KC_QUOT", "LALT(KC_LSFT)", "KC_LEFT", "KC_RGHT", "KC_UP", "KC_DOWN", "KC_LBRC", "KC_RBRC", "TT(1)",
15
16 "LALT_T(KC_APP)", "KC_LGUI", "KC_RALT", "LCTL_T(KC_ESC)",
17 "KC_HOME", "KC_PGUP",
18 "KC_SPC", "KC_BSPC", "KC_END", "KC_PGDN", "KC_TAB", "KC_ENT"
19 ],
20 [
21 "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11",
22 "KC_TRNS", "KC_EXLM", "KC_AT", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_UP", "KC_7", "KC_8", "KC_9", "KC_ASTR", "KC_F12",
23 "KC_TRNS", "KC_HASH", "KC_DLR", "KC_LPRN", "KC_RPRN", "KC_GRV", "KC_DOWN", "KC_4", "KC_5", "KC_6", "KC_PLUS", "KC_TRNS",
24 "KC_TRNS", "KC_PERC", "KC_CIRC", "KC_LBRC", "KC_RBRC", "KC_TILD", "KC_AMPR", "KC_1", "KC_2", "KC_3", "KC_BSLS", "KC_TRNS",
25 "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_DOT", "KC_0", "KC_EQL", "KC_TRNS",
26
27 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
28 "KC_TRNS", "KC_TRNS",
29 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
30 ],
31 [
32 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
33 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MS_U", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
34 "KC_TRNS", "KC_TRNS", "KC_MS_L", "KC_MS_D", "KC_MS_R", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY",
35 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_MNXT", "KC_TRNS", "KC_TRNS",
36 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_BTN1", "KC_BTN2", "KC_VOLU", "KC_VOLD", "KC_MUTE", "KC_TRNS", "KC_TRNS",
37
38 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
39 "KC_TRNS", "KC_TRNS",
40 "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_WBAK"
41 ]
42 ]
43}
diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py
index 97d9c5032c..a05b3641b5 100644
--- a/lib/python/qmk/commands.py
+++ b/lib/python/qmk/commands.py
@@ -55,7 +55,7 @@ def parse_configurator_json(configurator_file):
55 cli.log.error(f'Invalid JSON keymap: {configurator_file} : {e.message}') 55 cli.log.error(f'Invalid JSON keymap: {configurator_file} : {e.message}')
56 maybe_exit(1) 56 maybe_exit(1)
57 57
58 keyboard = user_keymap['keyboard'] 58 keyboard = user_keymap.get('keyboard', None)
59 aliases = keyboard_alias_definitions() 59 aliases = keyboard_alias_definitions()
60 60
61 while keyboard in aliases: 61 while keyboard in aliases:
diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py
index 97c358788a..9dd043c4a8 100644
--- a/lib/python/qmk/keymap.py
+++ b/lib/python/qmk/keymap.py
@@ -29,38 +29,40 @@ __INCLUDES__
29 * This file was generated by qmk json2c. You may or may not want to 29 * This file was generated by qmk json2c. You may or may not want to
30 * edit it directly. 30 * edit it directly.
31 */ 31 */
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33__KEYMAP_GOES_HERE__
34};
35 32
36#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) 33__KEYMAP_GOES_HERE__
37const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
38__ENCODER_MAP_GOES_HERE__ 34__ENCODER_MAP_GOES_HERE__
39};
40#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
41
42__MACRO_OUTPUT_GOES_HERE__ 35__MACRO_OUTPUT_GOES_HERE__
36
37#ifdef OTHER_KEYMAP_C
38# include OTHER_KEYMAP_C
39#endif // OTHER_KEYMAP_C
43""" 40"""
44 41
45 42
46def _generate_keymap_table(keymap_json): 43def _generate_keymap_table(keymap_json):
47 lines = [] 44 lines = ['const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {']
48 for layer_num, layer in enumerate(keymap_json['layers']): 45 for layer_num, layer in enumerate(keymap_json['layers']):
49 if layer_num != 0: 46 if layer_num != 0:
50 lines[-1] = lines[-1] + ',' 47 lines[-1] = lines[-1] + ','
51 layer = map(_strip_any, layer) 48 layer = map(_strip_any, layer)
52 layer_keys = ', '.join(layer) 49 layer_keys = ', '.join(layer)
53 lines.append(' [%s] = %s(%s)' % (layer_num, keymap_json['layout'], layer_keys)) 50 lines.append(' [%s] = %s(%s)' % (layer_num, keymap_json['layout'], layer_keys))
51 lines.append('};')
54 return lines 52 return lines
55 53
56 54
57def _generate_encodermap_table(keymap_json): 55def _generate_encodermap_table(keymap_json):
58 lines = [] 56 lines = [
57 '#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)',
58 'const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {',
59 ]
59 for layer_num, layer in enumerate(keymap_json['encoders']): 60 for layer_num, layer in enumerate(keymap_json['encoders']):
60 if layer_num != 0: 61 if layer_num != 0:
61 lines[-1] = lines[-1] + ',' 62 lines[-1] = lines[-1] + ','
62 encoder_keycode_txt = ', '.join([f'ENCODER_CCW_CW({_strip_any(e["ccw"])}, {_strip_any(e["cw"])})' for e in layer]) 63 encoder_keycode_txt = ', '.join([f'ENCODER_CCW_CW({_strip_any(e["ccw"])}, {_strip_any(e["cw"])})' for e in layer])
63 lines.append(' [%s] = {%s}' % (layer_num, encoder_keycode_txt)) 64 lines.append(' [%s] = {%s}' % (layer_num, encoder_keycode_txt))
65 lines.extend(['};', '#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)'])
64 return lines 66 return lines
65 67
66 68
@@ -271,8 +273,11 @@ def generate_c(keymap_json):
271 A sequence of strings containing macros to implement for this keyboard. 273 A sequence of strings containing macros to implement for this keyboard.
272 """ 274 """
273 new_keymap = DEFAULT_KEYMAP_C 275 new_keymap = DEFAULT_KEYMAP_C
274 layer_txt = _generate_keymap_table(keymap_json) 276
275 keymap = '\n'.join(layer_txt) 277 keymap = ''
278 if 'layers' in keymap_json and keymap_json['layers'] is not None:
279 layer_txt = _generate_keymap_table(keymap_json)
280 keymap = '\n'.join(layer_txt)
276 new_keymap = new_keymap.replace('__KEYMAP_GOES_HERE__', keymap) 281 new_keymap = new_keymap.replace('__KEYMAP_GOES_HERE__', keymap)
277 282
278 encodermap = '' 283 encodermap = ''
diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py
index b10fd8d19d..dd659fe0f2 100644
--- a/lib/python/qmk/tests/test_cli_commands.py
+++ b/lib/python/qmk/tests/test_cli_commands.py
@@ -152,17 +152,16 @@ def test_json2c():
152 * This file was generated by qmk json2c. You may or may not want to 152 * This file was generated by qmk json2c. You may or may not want to
153 * edit it directly. 153 * edit it directly.
154 */ 154 */
155
155const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 156const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
156 [0] = LAYOUT_ortho_1x1(KC_A) 157 [0] = LAYOUT_ortho_1x1(KC_A)
157}; 158};
158 159
159#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
160const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
161
162};
163#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
164 160
165 161
162#ifdef OTHER_KEYMAP_C
163# include OTHER_KEYMAP_C
164#endif // OTHER_KEYMAP_C
166 165
167 166
168""" 167"""
@@ -190,28 +189,21 @@ def test_json2c_stdin():
190 * This file was generated by qmk json2c. You may or may not want to 189 * This file was generated by qmk json2c. You may or may not want to
191 * edit it directly. 190 * edit it directly.
192 */ 191 */
192
193const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 193const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
194 [0] = LAYOUT_ortho_1x1(KC_A) 194 [0] = LAYOUT_ortho_1x1(KC_A)
195}; 195};
196 196
197#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
198const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
199
200};
201#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
202 197
203 198
199#ifdef OTHER_KEYMAP_C
200# include OTHER_KEYMAP_C
201#endif // OTHER_KEYMAP_C
204 202
205 203
206""" 204"""
207 205
208 206
209def test_json2c_wrong_json():
210 result = check_subcommand('json2c', 'keyboards/handwired/pytest/info.json')
211 check_returncode(result, [1])
212 assert 'Invalid JSON keymap' in result.stdout
213
214
215def test_json2c_no_json(): 207def test_json2c_no_json():
216 result = check_subcommand('json2c', 'keyboards/handwired/pytest/basic/keymaps/default/keymap.c') 208 result = check_subcommand('json2c', 'keyboards/handwired/pytest/basic/keymaps/default/keymap.c')
217 check_returncode(result, [1]) 209 check_returncode(result, [1])
diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py
index 7482848eff..80cc679b00 100644
--- a/lib/python/qmk/tests/test_qmk_keymap.py
+++ b/lib/python/qmk/tests/test_qmk_keymap.py
@@ -20,17 +20,16 @@ def test_generate_c_pytest_basic():
20 * This file was generated by qmk json2c. You may or may not want to 20 * This file was generated by qmk json2c. You may or may not want to
21 * edit it directly. 21 * edit it directly.
22 */ 22 */
23
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24 [0] = LAYOUT(KC_A) 25 [0] = LAYOUT(KC_A)
25}; 26};
26 27
27#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
28const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
29
30};
31#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
32 28
33 29
30#ifdef OTHER_KEYMAP_C
31# include OTHER_KEYMAP_C
32#endif // OTHER_KEYMAP_C
34""" 33"""
35 34
36 35