From aecb387692e4e9eefc73cee018ed570393b50167 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 9 Dec 2021 06:42:11 +0000 Subject: [PATCH] Add test filter to 'qmk pytest' (#15432) * Add test filter to 'qmk pytest' * Bodge for some test filters not resolving qmk * Update docs --- docs/cli_commands.md | 17 ++++++++++++++++- lib/python/qmk/cli/pytest.py | 3 ++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 520da06c41..01241b00d8 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -481,5 +481,20 @@ This command runs the python test suite. If you make changes to python code you **Usage**: ``` -qmk pytest +qmk pytest [-t TEST] ``` + +**Examples**: + +Run entire test suite: + + qmk pytest + +Run test group: + + qmk pytest -t qmk.tests.test_cli_commands + +Run single test: + + qmk pytest -t qmk.tests.test_cli_commands.test_c2json + qmk pytest -t qmk.tests.test_qmk_path diff --git a/lib/python/qmk/cli/pytest.py b/lib/python/qmk/cli/pytest.py index a7f01a872a..2e4a0a9f00 100644 --- a/lib/python/qmk/cli/pytest.py +++ b/lib/python/qmk/cli/pytest.py @@ -7,11 +7,12 @@ from subprocess import DEVNULL from milc import cli +@cli.argument('-t', '--test', arg_only=True, action='append', default=[], help="Mapped to nose2 'testNames' positional argument - https://docs.nose2.io/en/latest/usage.html#specifying-tests-to-run") @cli.subcommand('QMK Python Unit Tests', hidden=False if cli.config.user.developer else True) def pytest(cli): """Run several linting/testing commands. """ - nose2 = cli.run(['nose2', '-v'], capture_output=False, stdin=DEVNULL) + nose2 = cli.run(['nose2', '-v', '-t' 'lib/python', *cli.args.test], capture_output=False, stdin=DEVNULL) flake8 = cli.run(['flake8', 'lib/python'], capture_output=False, stdin=DEVNULL) return flake8.returncode | nose2.returncode