xonsh/tests/test_cli_utils.py
Noorhteen Raja NJ 888cb819c9
history transfer (#4604)
* 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
2021-12-20 08:36:29 +05:30

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",
)