mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-04 16:34:47 +01:00

* refactor: update `history gc` cli usage * feat: added `history transfer` command cli-utils now provides hook to parser.add_argument call * test: test refactor * docs: * fix: mypy error * fix: remove debug line
79 lines
1.8 KiB
Python
79 lines
1.8 KiB
Python
"""Test module xonsh/cli_utils.py"""
|
|
|
|
from xonsh import cli_utils
|
|
|
|
|
|
def func_with_doc(param: str, multi: str, optional=False):
|
|
"""func doc
|
|
multi-line
|
|
|
|
Parameters
|
|
----------
|
|
param
|
|
param doc
|
|
multi
|
|
param doc
|
|
multi line
|
|
optional : -o, --opt
|
|
an optional parameter with flags defined in description
|
|
|
|
Returns
|
|
-------
|
|
str
|
|
return doc
|
|
"""
|
|
return param + multi, optional
|
|
|
|
|
|
def test_get_doc_param():
|
|
doc = cli_utils.NumpyDoc(func_with_doc)
|
|
assert doc.description.splitlines() == [
|
|
"func doc",
|
|
"multi-line",
|
|
]
|
|
assert doc.epilog.splitlines() == [
|
|
"Returns",
|
|
"-------",
|
|
"str",
|
|
" return doc",
|
|
]
|
|
assert doc.params["param"].splitlines() == [
|
|
"param doc",
|
|
]
|
|
assert doc.params["multi"].splitlines() == [
|
|
"param doc",
|
|
"multi line",
|
|
]
|
|
assert doc.flags == {"optional": ["-o", "--opt"]}
|
|
|
|
|
|
def test_generated_parser():
|
|
from xonsh.completers._aliases import CompleterAlias
|
|
|
|
alias = CompleterAlias()
|
|
|
|
assert alias.parser.description
|
|
|
|
positionals = alias.parser._get_positional_actions()
|
|
add_cmd = positionals[0].choices["add"]
|
|
assert "Add a new completer" in add_cmd.description
|
|
assert (
|
|
alias.parser.format_usage()
|
|
== "usage: completer [-h] {add,remove,rm,list,ls,complete} ...\n"
|
|
)
|
|
assert add_cmd.format_usage() == "usage: completer add [-h] name func [pos]\n"
|
|
|
|
|
|
def test_parser_hooking():
|
|
from xonsh.history.main import HistoryAlias
|
|
|
|
alias = HistoryAlias()
|
|
|
|
parser, _ = cli_utils.ArgparseCompleter.get_parser(alias.parser, ["show"])
|
|
assert parser._get_positional_actions()[0].choices == (
|
|
"session",
|
|
"xonsh",
|
|
"all",
|
|
"zsh",
|
|
"bash",
|
|
)
|