Explorar el Código

Migrate python tests away from onekey (#11367)

* Migrate python tests away from onekey

* Add stub files to stop lint complaints

* Make all the pytest keymaps compile
Joel Challis hace 4 años
padre
commit
f03b10b6c1
Se han modificado 27 ficheros con 113 adiciones y 82 borrados
  1. 0 23
      keyboards/handwired/onekey/pytest/config.h
  2. 0 3
      keyboards/handwired/onekey/pytest/readme.md
  3. 0 2
      keyboards/handwired/onekey/pytest/rules.mk
  4. 0 0
      keyboards/handwired/pytest/.noci
  5. 0 0
      keyboards/handwired/pytest/basic/.noci
  6. 5 0
      keyboards/handwired/pytest/basic/keymaps/default/keymap.c
  7. 2 2
      keyboards/handwired/pytest/basic/keymaps/default_json/keymap.json
  8. 0 0
      keyboards/handwired/pytest/basic/readme.md
  9. 1 0
      keyboards/handwired/pytest/basic/rules.mk
  10. 18 0
      keyboards/handwired/pytest/config.h
  11. 0 0
      keyboards/handwired/pytest/has_community/.noci
  12. 0 0
      keyboards/handwired/pytest/has_community/readme.md
  13. 3 0
      keyboards/handwired/pytest/has_community/rules.mk
  14. 0 0
      keyboards/handwired/pytest/has_template/.noci
  15. 0 0
      keyboards/handwired/pytest/has_template/keymaps/.noci
  16. 5 0
      keyboards/handwired/pytest/has_template/keymaps/default/keymap.c
  17. 9 0
      keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json
  18. 0 0
      keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c
  19. 0 0
      keyboards/handwired/pytest/has_template/readme.md
  20. 1 0
      keyboards/handwired/pytest/has_template/rules.mk
  21. 0 0
      keyboards/handwired/pytest/has_template/templates/keymap.c
  22. 1 1
      keyboards/handwired/pytest/has_template/templates/keymap.json
  23. 11 0
      keyboards/handwired/pytest/pytest.h
  24. 1 1
      lib/python/qmk/tests/pytest_export.json
  25. 37 31
      lib/python/qmk/tests/test_cli_commands.py
  26. 16 16
      lib/python/qmk/tests/test_qmk_keymap.py
  27. 3 3
      lib/python/qmk/tests/test_qmk_path.py

+ 0 - 23
keyboards/handwired/onekey/pytest/config.h

@@ -1,23 +0,0 @@
-/* Copyright 2019
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "config_common.h"
-
-#define MATRIX_COL_PINS { A3 }
-#define MATRIX_ROW_PINS { A2 }
-#define UNUSED_PINS

+ 0 - 3
keyboards/handwired/onekey/pytest/readme.md

@@ -1,3 +0,0 @@
-# PyTest onekey
-
-This is used by the python test framework. It's probably not useful otherwise.

+ 0 - 2
keyboards/handwired/onekey/pytest/rules.mk

@@ -1,2 +0,0 @@
-# MCU name
-MCU = STM32F303

+ 0 - 0
keyboards/handwired/onekey/pytest/.noci → keyboards/handwired/pytest/.noci


+ 0 - 0
keyboards/handwired/pytest/basic/.noci


+ 5 - 0
keyboards/handwired/pytest/basic/keymaps/default/keymap.c

@@ -0,0 +1,5 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    LAYOUT_ortho_1x1(KC_A)
+};

+ 2 - 2
keyboards/handwired/onekey/keymaps/default_json/keymap.json → keyboards/handwired/pytest/basic/keymaps/default_json/keymap.json

@@ -1,9 +1,9 @@
 {
-    "keyboard": "handwired/onekey/pytest",
+    "keyboard": "handwired/pytest/basic",
     "keymap": "default_json",
     "layout": "LAYOUT_ortho_1x1",
     "layers": [["KC_A"]],
     "author": "qmk",
-    "notes": "This file is a keymap.json file for handwired/onekey/pytest",
+    "notes": "This file is a keymap.json file for handwired/pytest/basic",
     "version": 1
 }

+ 0 - 0
keyboards/handwired/pytest/basic/readme.md


+ 1 - 0
keyboards/handwired/pytest/basic/rules.mk

@@ -0,0 +1 @@
+MCU = atmega32u4

+ 18 - 0
keyboards/handwired/pytest/config.h

@@ -0,0 +1,18 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0x6465
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    none
+#define PRODUCT         pytest
+
+/* key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 1
+
+#define MATRIX_COL_PINS { F4 }
+#define MATRIX_ROW_PINS { F5 }
+#define DIODE_DIRECTION COL2ROW

+ 0 - 0
keyboards/handwired/pytest/has_community/.noci


+ 0 - 0
keyboards/handwired/pytest/has_community/readme.md


+ 3 - 0
keyboards/handwired/pytest/has_community/rules.mk

@@ -0,0 +1,3 @@
+MCU = atmega32u4
+
+LAYOUTS = ortho_1x1

+ 0 - 0
keyboards/handwired/pytest/has_template/.noci


+ 0 - 0
keyboards/handwired/pytest/has_template/keymaps/.noci


+ 5 - 0
keyboards/handwired/pytest/has_template/keymaps/default/keymap.c

@@ -0,0 +1,5 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    LAYOUT_ortho_1x1(KC_A)
+};

+ 9 - 0
keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json

@@ -0,0 +1,9 @@
+{
+    "keyboard": "handwired/pytest/has_template",
+    "keymap": "default_json",
+    "layout": "LAYOUT_ortho_1x1",
+    "layers": [["KC_A"]],
+    "author": "qmk",
+    "notes": "This file is a keymap.json file for handwired/pytest/has_template",
+    "version": 1
+}

+ 0 - 0
keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c → keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c


+ 0 - 0
keyboards/handwired/pytest/has_template/readme.md


+ 1 - 0
keyboards/handwired/pytest/has_template/rules.mk

@@ -0,0 +1 @@
+MCU = atmega32u4

+ 0 - 0
keyboards/handwired/onekey/pytest/templates/keymap.c → keyboards/handwired/pytest/has_template/templates/keymap.c


+ 1 - 1
keyboards/handwired/onekey/pytest/templates/keymap.json → keyboards/handwired/pytest/has_template/templates/keymap.json

@@ -1,3 +1,3 @@
 {
-  "documentation": "This file is a keymap.json file for handwired/onekey/pytest"
+  "documentation": "This file is a keymap.json file for handwired/pytest/has_template"
 }

+ 11 - 0
keyboards/handwired/pytest/pytest.h

@@ -0,0 +1,11 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_ortho_1x1( \
+    k00 \
+) { \
+    { k00 } \
+}
+
+#define LAYOUT LAYOUT_ortho_1x1

+ 1 - 1
lib/python/qmk/tests/onekey_export.json → lib/python/qmk/tests/pytest_export.json

@@ -1,5 +1,5 @@
 {
-    "keyboard":"handwired/onekey/pytest",
+    "keyboard":"handwired/pytest/basic",
     "keymap":"pytest_unittest",
     "layout":"LAYOUT",
     "layers":[["KC_A"]]

+ 37 - 31
lib/python/qmk/tests/test_cli_commands.py

@@ -38,17 +38,17 @@ def test_cformat():
 
 
 def test_compile():
-    result = check_subcommand('compile', '-kb', 'handwired/onekey/pytest', '-km', 'default', '-n')
+    result = check_subcommand('compile', '-kb', 'handwired/pytest/basic', '-km', 'default', '-n')
     check_returncode(result)
 
 
 def test_compile_json():
-    result = check_subcommand('compile', '-kb', 'handwired/onekey/pytest', '-km', 'default_json', '-n')
+    result = check_subcommand('compile', '-kb', 'handwired/pytest/basic', '-km', 'default_json', '-n')
     check_returncode(result)
 
 
 def test_flash():
-    result = check_subcommand('flash', '-kb', 'handwired/onekey/pytest', '-km', 'default', '-n')
+    result = check_subcommand('flash', '-kb', 'handwired/pytest/basic', '-km', 'default', '-n')
     check_returncode(result)
 
 
@@ -92,20 +92,26 @@ def test_list_keyboards():
     result = check_subcommand('list-keyboards')
     check_returncode(result)
     # check to see if a known keyboard is returned
-    # this will fail if handwired/onekey/pytest is removed
-    assert 'handwired/onekey/pytest' in result.stdout
+    # this will fail if handwired/pytest/basic is removed
+    assert 'handwired/pytest/basic' in result.stdout
 
 
 def test_list_keymaps():
-    result = check_subcommand('list-keymaps', '-kb', 'handwired/onekey/pytest')
+    result = check_subcommand('list-keymaps', '-kb', 'handwired/pytest/basic')
     check_returncode(result)
-    assert 'default' and 'test' in result.stdout
+    assert 'default' and 'default_json' in result.stdout
 
 
 def test_list_keymaps_long():
-    result = check_subcommand('list-keymaps', '--keyboard', 'handwired/onekey/pytest')
+    result = check_subcommand('list-keymaps', '--keyboard', 'handwired/pytest/basic')
     check_returncode(result)
-    assert 'default' and 'test' in result.stdout
+    assert 'default' and 'default_json' in result.stdout
+
+
+def test_list_keymaps_community():
+    result = check_subcommand('list-keymaps', '--keyboard', 'handwired/pytest/has_community')
+    check_returncode(result)
+    assert 'test' in result.stdout
 
 
 def test_list_keymaps_kb_only():
@@ -133,40 +139,40 @@ def test_list_keymaps_no_keyboard_found():
 
 
 def test_json2c():
-    result = check_subcommand('json2c', 'keyboards/handwired/onekey/keymaps/default_json/keymap.json')
+    result = check_subcommand('json2c', 'keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json')
     check_returncode(result)
     assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n'
 
 
 def test_json2c_stdin():
-    result = check_subcommand_stdin('keyboards/handwired/onekey/keymaps/default_json/keymap.json', 'json2c', '-')
+    result = check_subcommand_stdin('keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json', 'json2c', '-')
     check_returncode(result)
     assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n'
 
 
 def test_info():
-    result = check_subcommand('info', '-kb', 'handwired/onekey/pytest')
+    result = check_subcommand('info', '-kb', 'handwired/pytest/basic')
     check_returncode(result)
-    assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout
-    assert 'Processor: STM32F303' in result.stdout
+    assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
+    assert 'Processor: atmega32u4' in result.stdout
     assert 'Layout:' not in result.stdout
     assert 'k0' not in result.stdout
 
 
 def test_info_keyboard_render():
-    result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-l')
+    result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-l')
     check_returncode(result)
-    assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout
-    assert 'Processor: STM32F303' in result.stdout
+    assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
+    assert 'Processor: atmega32u4' in result.stdout
     assert 'Layouts:' in result.stdout
     assert 'k0' in result.stdout
 
 
 def test_info_keymap_render():
-    result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-km', 'default_json')
+    result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-km', 'default_json')
     check_returncode(result)
-    assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout
-    assert 'Processor: STM32F303' in result.stdout
+    assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
+    assert 'Processor: atmega32u4' in result.stdout
 
     if is_windows:
         assert '|A |' in result.stdout
@@ -175,10 +181,10 @@ def test_info_keymap_render():
 
 
 def test_info_matrix_render():
-    result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-m')
+    result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-m')
     check_returncode(result)
-    assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout
-    assert 'Processor: STM32F303' in result.stdout
+    assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
+    assert 'Processor: atmega32u4' in result.stdout
     assert 'LAYOUT_ortho_1x1' in result.stdout
 
     if is_windows:
@@ -190,27 +196,27 @@ def test_info_matrix_render():
 
 
 def test_c2json():
-    result = check_subcommand("c2json", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/default/keymap.c")
+    result = check_subcommand("c2json", "-kb", "handwired/pytest/has_template", "-km", "default", "keyboards/handwired/pytest/has_template/keymaps/default/keymap.c")
     check_returncode(result)
-    assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}'
+    assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}'
 
 
 def test_c2json_nocpp():
-    result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c")
+    result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/pytest/has_template", "-km", "default", "keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c")
     check_returncode(result)
-    assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}'
+    assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}'
 
 
 def test_c2json_stdin():
-    result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/default/keymap.c", "c2json", "-kb", "handwired/onekey/pytest", "-km", "default", "-")
+    result = check_subcommand_stdin("keyboards/handwired/pytest/has_template/keymaps/default/keymap.c", "c2json", "-kb", "handwired/pytest/has_template", "-km", "default", "-")
     check_returncode(result)
-    assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}'
+    assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}'
 
 
 def test_c2json_nocpp_stdin():
-    result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c", "c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "-")
+    result = check_subcommand_stdin("keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c", "c2json", "--no-cpp", "-kb", "handwired/pytest/has_template", "-km", "default", "-")
     check_returncode(result)
-    assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}'
+    assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}'
 
 
 def test_clean():

+ 16 - 16
lib/python/qmk/tests/test_qmk_keymap.py

@@ -1,38 +1,38 @@
 import qmk.keymap
 
 
-def test_template_c_onekey_proton_c():
-    templ = qmk.keymap.template_c('handwired/onekey/proton_c')
+def test_template_c_pytest_basic():
+    templ = qmk.keymap.template_c('handwired/pytest/basic')
     assert templ == qmk.keymap.DEFAULT_KEYMAP_C
 
 
-def test_template_json_onekey_proton_c():
-    templ = qmk.keymap.template_json('handwired/onekey/proton_c')
-    assert templ == {'keyboard': 'handwired/onekey/proton_c'}
+def test_template_json_pytest_basic():
+    templ = qmk.keymap.template_json('handwired/pytest/basic')
+    assert templ == {'keyboard': 'handwired/pytest/basic'}
 
 
-def test_template_c_onekey_pytest():
-    templ = qmk.keymap.template_c('handwired/onekey/pytest')
+def test_template_c_pytest_has_template():
+    templ = qmk.keymap.template_c('handwired/pytest/has_template')
     assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {__KEYMAP_GOES_HERE__};\n'
 
 
-def test_template_json_onekey_pytest():
-    templ = qmk.keymap.template_json('handwired/onekey/pytest')
-    assert templ == {'keyboard': 'handwired/onekey/pytest', "documentation": "This file is a keymap.json file for handwired/onekey/pytest"}
+def test_template_json_pytest_has_template():
+    templ = qmk.keymap.template_json('handwired/pytest/has_template')
+    assert templ == {'keyboard': 'handwired/pytest/has_template', "documentation": "This file is a keymap.json file for handwired/pytest/has_template"}
 
 
-def test_generate_c_onekey_pytest():
-    templ = qmk.keymap.generate_c('handwired/onekey/pytest', 'LAYOUT', [['KC_A']])
+def test_generate_c_pytest_has_template():
+    templ = qmk.keymap.generate_c('handwired/pytest/has_template', 'LAYOUT', [['KC_A']])
     assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT(KC_A)};\n'
 
 
-def test_generate_json_onekey_pytest():
-    templ = qmk.keymap.generate_json('default', 'handwired/onekey/pytest', 'LAYOUT', [['KC_A']])
-    assert templ == {"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_A"]]}
+def test_generate_json_pytest_has_template():
+    templ = qmk.keymap.generate_json('default', 'handwired/pytest/has_template', 'LAYOUT', [['KC_A']])
+    assert templ == {"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_A"]]}
 
 
 def test_parse_keymap_c():
-    parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/onekey/keymaps/default/keymap.c')
+    parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/pytest/basic/keymaps/default/keymap.c')
     assert parsed_keymap_c == {'layers': [{'name': '0', 'layout': 'LAYOUT_ortho_1x1', 'keycodes': ['KC_A']}]}
 
 

+ 3 - 3
lib/python/qmk/tests/test_qmk_path.py

@@ -4,9 +4,9 @@ from pathlib import Path
 import qmk.path
 
 
-def test_keymap_onekey_pytest():
-    path = qmk.path.keymap('handwired/onekey/pytest')
-    assert path.samefile('keyboards/handwired/onekey/keymaps')
+def test_keymap_pytest_basic():
+    path = qmk.path.keymap('handwired/pytest/basic')
+    assert path.samefile('keyboards/handwired/pytest/basic/keymaps')
 
 
 def test_normpath():