Browse Source

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
pull/11437/head
Joel Challis 3 years ago
committed by GitHub
parent
commit
f03b10b6c1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 113 additions and 82 deletions
  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 View File

@ -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 View File

@ -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 View File

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

keyboards/handwired/onekey/pytest/.noci → keyboards/handwired/pytest/.noci View File


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


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

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

keyboards/handwired/onekey/keymaps/default_json/keymap.json → keyboards/handwired/pytest/basic/keymaps/default_json/keymap.json View File

@ -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 View File


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

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

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

@ -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 View File


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


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

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

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


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


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

@ -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 View File

@ -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
}

keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c → keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c View File


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


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

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

keyboards/handwired/onekey/pytest/templates/keymap.c → keyboards/handwired/pytest/has_template/templates/keymap.c View File


keyboards/handwired/onekey/pytest/templates/keymap.json → keyboards/handwired/pytest/has_template/templates/keymap.json View File

@ -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 View File

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

lib/python/qmk/tests/onekey_export.json → lib/python/qmk/tests/pytest_export.json View File

@ -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 View File

@ -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 View File

@ -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 View File

@ -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():


Loading…
Cancel
Save