def test_task_with_one_arg_not_given(capsys): programme = Programme(namespace=myapp()) programme.run("invoke echo", exit=False) captured = capsys.readouterr() assert ( captured.err == "'echo' did not receive required positional arguments: 'word'\n" ) assert captured.out == ""
def test_app_setting_different_default(capsys): def myapp2(): ns = Collection() add_task(ns, default, word="appdefault") return ns programme = Programme(namespace=myapp2()) programme.run("invoke default", exit=False) captured = capsys.readouterr() assert captured.err == "" assert captured.out == "appdefault\n"
def xtest_help(capsys): programme = Programme(namespace=myapp()) assert default.help == programme.namespace["default"].help programme.run("invoke --help", exit=False) captured = capsys.readouterr() assert captured.err == "" assert captured.out == dedent( """\ Usage: invoke [--core-opts] <subcommand> [--subcommand-opts] ... Core options: --complete Print tab-completion candidates for given parse remainder. --hide=STRING Set default value of run()'s 'hide' kwarg. --print-completion-script=STRING Print the tab-completion script for your preferred shell (bash|zsh|fish). --prompt-for-sudo-password Prompt user at start of session for the sudo.password config value. --write-pyc Enable creation of .pyc files. -d, --debug Enable debug output. -D INT, --list-depth=INT When listing tasks, only show the first INT levels. -e, --echo Echo executed commands before running. -f STRING, --config=STRING Runtime configuration file to use. -F STRING, --list-format=STRING Change the display format used when listing tasks. Should be one of: flat (default), nested, json. -h [STRING], --help[=STRING] Show core or per-task help and exit. -l [STRING], --list[=STRING] List available tasks, optionally limited to a namespace. -p, --pty Use a pty when executing shell commands. -R, --dry Echo commands instead of running. -T INT, --command-timeout=INT Specify a global command execution timeout, in seconds. -V, --version Show version and exit. -w, --warn-only Warn, instead of failing, when shell commands fail. Subcommands: default Echo the given word. Defaults to 'defaultword'. echo Echo the given word. foo """ )
def test_task_with_no_args_help(capsys): programme = Programme(namespace=myapp()) programme.run("invoke foo -h", exit=False) captured = capsys.readouterr() assert captured.err == "" assert captured.out == dedent( """\ Usage: invoke [--core-opts] foo [other tasks here ...] Docstring: none Options: none """ )
def test_task_with_one_arg_help(capsys): programme = Programme(namespace=myapp()) programme.run("invoke --help echo", exit=False) captured = capsys.readouterr() assert captured.err == "" assert captured.out == dedent( """\ Usage: invoke [--core-opts] echo [--options] [other tasks here ...] Docstring: Echo the given word. Options: -w STRING, --word=STRING """ )
import os import pathlib from textwrap import dedent from invoke import Program as Programme programme = Programme() def main(): if not os.path.exists("tasks.py"): print("Not tasks.py found; creating default...") name = pathlib.Path.cwd().name with open("tasks.py", "w") as f: f.write( dedent(f"""\ import hedy namespace = hedy.app("{name}") """)) programme.run()
def test_task_with_no_args(capsys): programme = Programme(namespace=myapp()) programme.run("invoke foo", exit=False) captured = capsys.readouterr() assert captured.err == "" assert captured.out == "foo\n"
def test_task_with_one_kw_arg_not_given(capsys): programme = Programme(namespace=myapp()) programme.run("invoke default", exit=False) captured = capsys.readouterr() assert captured.err == "" assert captured.out == "defaultword\n"
def test_task_with_one_arg(capsys): programme = Programme(namespace=myapp()) programme.run("invoke echo bar", exit=False) captured = capsys.readouterr() assert captured.err == "" assert captured.out == "bar\n"