mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-04 08:24:40 +01:00
107 lines
2.8 KiB
Python
107 lines
2.8 KiB
Python
import os
|
|
import subprocess
|
|
|
|
import pytest # noqa F401
|
|
|
|
from xonsh.completers.man import complete_from_man
|
|
from xonsh.pytest.tools import skip_if_not_on_darwin, skip_if_on_windows
|
|
|
|
|
|
@skip_if_on_windows
|
|
@pytest.mark.parametrize(
|
|
"cmd,exp",
|
|
[
|
|
[
|
|
"yes",
|
|
{"--version", "--help"},
|
|
],
|
|
[
|
|
"man",
|
|
{
|
|
"--all",
|
|
"--apropos",
|
|
"--ascii",
|
|
"--catman",
|
|
"--config-file",
|
|
"--debug",
|
|
"--default",
|
|
"--ditroff",
|
|
"--encoding",
|
|
"--extension",
|
|
"--global-apropos",
|
|
"--gxditview",
|
|
"--help",
|
|
"--html",
|
|
"--ignore-case",
|
|
"--local-file",
|
|
"--locale",
|
|
"--location",
|
|
"--location-cat",
|
|
"--manpath",
|
|
"--match-case",
|
|
"--names-only",
|
|
"--nh",
|
|
"--nj",
|
|
"--no-subpages",
|
|
"--pager",
|
|
"--preprocessor",
|
|
"--prompt",
|
|
"--recode",
|
|
"--regex",
|
|
"--sections",
|
|
"--systems",
|
|
"--troff",
|
|
"--troff-device",
|
|
"--update",
|
|
"--usage",
|
|
"--version",
|
|
"--warnings",
|
|
"--whatis",
|
|
"--wildcard",
|
|
},
|
|
],
|
|
],
|
|
)
|
|
def test_man_completion(xession, check_completer, cmd, exp):
|
|
xession.env["MANPATH"] = os.path.dirname(os.path.abspath(__file__))
|
|
completions = check_completer(cmd, complete_fn=complete_from_man, prefix="-")
|
|
assert completions == exp
|
|
|
|
|
|
@skip_if_not_on_darwin
|
|
@pytest.mark.parametrize(
|
|
"cmd,exp",
|
|
[
|
|
[
|
|
"ar",
|
|
{
|
|
"-L",
|
|
"-S",
|
|
"-T",
|
|
"-a",
|
|
"-b",
|
|
"-c",
|
|
"-d",
|
|
"-i",
|
|
"-m",
|
|
"-o",
|
|
"-p",
|
|
"-q",
|
|
"-r",
|
|
"-s",
|
|
"-t",
|
|
"-u",
|
|
"-x",
|
|
},
|
|
],
|
|
],
|
|
)
|
|
def test_bsd_man_page_completions(xession, check_completer, cmd, exp):
|
|
proc = subprocess.run([cmd, "--version"], stderr=subprocess.PIPE)
|
|
if (cmd == "ar" and proc.returncode != 1) or (
|
|
cmd == "man" and proc.stderr.strip() not in {b"man, version 1.6g"}
|
|
):
|
|
pytest.skip("A different man page version is installed")
|
|
# BSD & Linux have different man page version
|
|
completions = check_completer(cmd, complete_fn=complete_from_man, prefix="-")
|
|
assert completions == exp
|