mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-01 09:17:02 +00:00
help_cmd converted
This commit is contained in:
parent
5bc1bbd3a3
commit
a438176b85
1 changed files with 17 additions and 19 deletions
|
@ -2,26 +2,11 @@
|
||||||
|
|
||||||
from ...constants import * # NOQA
|
from ...constants import * # NOQA
|
||||||
from ...helpers.nanorst import RstToTextLazy, rst_to_terminal
|
from ...helpers.nanorst import RstToTextLazy, rst_to_terminal
|
||||||
from . import ArchiverTestCaseBase, Archiver
|
from . import Archiver, cmd
|
||||||
|
|
||||||
|
|
||||||
class ArchiverTestCase(ArchiverTestCaseBase):
|
|
||||||
def test_usage(self):
|
|
||||||
self.cmd()
|
|
||||||
self.cmd("-h")
|
|
||||||
|
|
||||||
def test_help(self):
|
|
||||||
assert "Borg" in self.cmd("help")
|
|
||||||
assert "patterns" in self.cmd("help", "patterns")
|
|
||||||
assert "creates a new, empty repository" in self.cmd("help", "rcreate")
|
|
||||||
assert "positional arguments" not in self.cmd("help", "rcreate", "--epilog-only")
|
|
||||||
assert "creates a new, empty repository" not in self.cmd("help", "rcreate", "--usage-only")
|
|
||||||
|
|
||||||
|
|
||||||
def get_all_parsers():
|
def get_all_parsers():
|
||||||
"""
|
# Return dict mapping command to parser.
|
||||||
Return dict mapping command to parser.
|
|
||||||
"""
|
|
||||||
parser = Archiver(prog="borg").build_parser()
|
parser = Archiver(prog="borg").build_parser()
|
||||||
borgfs_parser = Archiver(prog="borgfs").build_parser()
|
borgfs_parser = Archiver(prog="borgfs").build_parser()
|
||||||
parsers = {}
|
parsers = {}
|
||||||
|
@ -30,8 +15,8 @@ def discover_level(prefix, parser, Archiver, extra_choices=None):
|
||||||
choices = {}
|
choices = {}
|
||||||
for action in parser._actions:
|
for action in parser._actions:
|
||||||
if action.choices is not None and "SubParsersAction" in str(action.__class__):
|
if action.choices is not None and "SubParsersAction" in str(action.__class__):
|
||||||
for cmd, parser in action.choices.items():
|
for command, parser in action.choices.items():
|
||||||
choices[prefix + cmd] = parser
|
choices[prefix + command] = parser
|
||||||
if extra_choices is not None:
|
if extra_choices is not None:
|
||||||
choices.update(extra_choices)
|
choices.update(extra_choices)
|
||||||
if prefix and not choices:
|
if prefix and not choices:
|
||||||
|
@ -45,6 +30,19 @@ def discover_level(prefix, parser, Archiver, extra_choices=None):
|
||||||
return parsers
|
return parsers
|
||||||
|
|
||||||
|
|
||||||
|
def test_usage(archiver):
|
||||||
|
cmd(archiver)
|
||||||
|
cmd(archiver, "-h")
|
||||||
|
|
||||||
|
|
||||||
|
def test_help(archiver):
|
||||||
|
assert "Borg" in cmd(archiver, "help")
|
||||||
|
assert "patterns" in cmd(archiver, "help", "patterns")
|
||||||
|
assert "creates a new, empty repository" in cmd(archiver, "help", "rcreate")
|
||||||
|
assert "positional arguments" not in cmd(archiver, "help", "rcreate", "--epilog-only")
|
||||||
|
assert "creates a new, empty repository" not in cmd(archiver, "help", "rcreate", "--usage-only")
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("command, parser", list(get_all_parsers().items()))
|
@pytest.mark.parametrize("command, parser", list(get_all_parsers().items()))
|
||||||
def test_help_formatting(command, parser):
|
def test_help_formatting(command, parser):
|
||||||
if isinstance(parser.epilog, RstToTextLazy):
|
if isinstance(parser.epilog, RstToTextLazy):
|
||||||
|
|
Loading…
Reference in a new issue