qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

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.