summaryrefslogtreecommitdiff
path: root/lib/python/qmk/tests/test_cli_commands.py
diff options
context:
space:
mode:
authorskullydazed <skullydazed@users.noreply.github.com>2019-09-22 13:25:33 -0700
committerGitHub <noreply@github.com>2019-09-22 13:25:33 -0700
commitd569f0877155efc752994f8a21f5cf001f9d6ae6 (patch)
treeeb58a3e3f916d6d938d8f05742d48919c053a579 /lib/python/qmk/tests/test_cli_commands.py
parent2f49cae9bcbdd94431659727ef75cfd30f557da8 (diff)
downloadqmk_firmware-d569f0877155efc752994f8a21f5cf001f9d6ae6.tar.gz
qmk_firmware-d569f0877155efc752994f8a21f5cf001f9d6ae6.zip
Configuration system for CLI (#6708)
* Rework how bin/qmk handles subcommands * qmk config wip * Code to show all configs * Fully working `qmk config` command * Mark some CLI arguments so they don't pollute the config file * Fleshed out config support, nicer subcommand support * sync with installable cli * pyformat * Add a test for subcommand_modules * Documentation for the `qmk config` command * split config_token on space so qmk config is more predictable * Rework how subcommands are imported * Document `arg_only` * Document deleting from CLI * Document how multiple operations work * Add cli config to the doc index * Add tests for the cli commands * Make running the tests more reliable * Be more selective about building all default keymaps * Update new-keymap to fit the new subcommand style * Add documentation about writing CLI scripts * Document new-keyboard * Update docs/cli_configuration.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Address yan's comments. * Apply suggestions from code review suggestions from @noahfrederick Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Apply suggestions from code review Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Remove pip3 from the test runner
Diffstat (limited to 'lib/python/qmk/tests/test_cli_commands.py')
-rw-r--r--lib/python/qmk/tests/test_cli_commands.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py
new file mode 100644
index 0000000000..2fc6e0f723
--- /dev/null
+++ b/lib/python/qmk/tests/test_cli_commands.py
@@ -0,0 +1,39 @@
+import subprocess
+
+
+def check_subcommand(command, *args):
+ cmd = ['bin/qmk', command] + list(args)
+ return subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
+
+
+def test_cformat():
+ assert check_subcommand('cformat', 'tmk_core/common/backlight.c').returncode == 0
+
+
+def test_compile():
+ assert check_subcommand('compile', '-kb', 'handwired/onekey/pytest', '-km', 'default').returncode == 0
+
+
+def test_config():
+ result = check_subcommand('config')
+ assert result.returncode == 0
+ assert 'general.color' in result.stdout
+
+
+def test_doctor():
+ result = check_subcommand('doctor')
+ assert result.returncode == 0
+ assert 'QMK Doctor is checking your environment.' in result.stderr
+ assert 'QMK is ready to go' in result.stderr
+
+
+def test_hello():
+ result = check_subcommand('hello')
+ assert result.returncode == 0
+ assert 'Hello,' in result.stderr
+
+
+def test_pyformat():
+ result = check_subcommand('pyformat')
+ assert result.returncode == 0
+ assert 'Successfully formatted the python code' in result.stderr