Merge pull request #9138 from tk0miya/9137_program_None

Add doc and testcase for program directive (refs: #9137)
This commit is contained in:
Takeshi KOMIYA 2021-04-29 02:25:23 +09:00 committed by GitHub
commit 1e1de0713a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View File

@ -1680,6 +1680,9 @@ There is a set of directives allowing documenting command-line programs:
then ``:option:`rm -r``` would refer to the first option, while
``:option:`svn -r``` would refer to the second one.
If ``None`` is passed to the argument, the directive will reset the
current program name.
The program name may contain spaces (in case you want to document
subcommands like ``svn add`` and ``svn commit`` separately).

View File

@ -324,6 +324,23 @@ def test_cmdoption(app):
assert domain.progoptions[('ls', '-l')] == ('index', 'cmdoption-ls-l')
def test_cmdoption_for_None(app):
text = (".. program:: ls\n"
".. program:: None\n"
"\n"
".. option:: -l\n")
domain = app.env.get_domain('std')
doctree = restructuredtext.parse(app, text)
assert_node(doctree, (addnodes.index,
[desc, ([desc_signature, ([desc_name, "-l"],
[desc_addname, ()])],
[desc_content, ()])]))
assert_node(doctree[0], addnodes.index,
entries=[('pair', 'command line option; -l', 'cmdoption-l', '', None)])
assert (None, '-l') in domain.progoptions
assert domain.progoptions[(None, '-l')] == ('index', 'cmdoption-l')
def test_multiple_cmdoptions(app):
text = (".. program:: cmd\n"
"\n"