test_qmk_keymap.py (1249B)
1 import qmk.keymap 2 3 4 def 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 24 const 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 37 def 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 42 def 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.