keyboard stuff
1import qmk.keymap
2
3
4def test_generate_c_pytest_basic():
5 keymap_json = {
6 'keyboard': 'handwired/pytest/basic',
7 'layout': 'LAYOUT',
8 'layers': [['KC_A']],
9 'macros': None,
10 }
11 templ = qmk.keymap.generate_c(keymap_json)
12 assert templ == """#include QMK_KEYBOARD_H
13#if __has_include("keymap.h")
14# include "keymap.h"
15#endif
16
17
18/* THIS FILE WAS GENERATED!
19 *
20 * This file was generated by qmk json2c. You may or may not want to
21 * edit it directly.
22 */
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 [0] = LAYOUT(KC_A)
26};
27
28
29
30
31#ifdef OTHER_KEYMAP_C
32# include OTHER_KEYMAP_C
33#endif // OTHER_KEYMAP_C
34"""
35
36
37def test_generate_json_pytest_basic():
38 templ = qmk.keymap.generate_json('default', 'handwired/pytest/basic', 'LAYOUT', [['KC_A']])
39 assert templ == {"keyboard": "handwired/pytest/basic", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_A"]]}
40
41
42def test_parse_keymap_c():
43 parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/pytest/basic/keymaps/default/keymap.c')
44 assert parsed_keymap_c == {'layers': [{'name': '0', 'layout': 'LAYOUT_ortho_1x1', 'keycodes': ['KC_A']}]}
45
46
47# FIXME(skullydazed): Add a test for qmk.keymap.write that mocks up an FD.