sphinx/tests/test_builders/test_build_manpage.py

105 lines
2.7 KiB
Python
Raw Normal View History

2022-02-19 21:05:56 -06:00
"""Test the build process with manpage builder with the test root."""
2016-01-08 01:00:26 -06:00
import docutils
import pytest
2016-01-08 01:00:26 -06:00
from sphinx.builders.manpage import default_man_pages
from sphinx.config import Config
2016-01-08 01:00:26 -06:00
@pytest.mark.sphinx('man')
def test_all(app):
2024-01-16 20:38:46 -06:00
app.build(force_all=True)
assert (app.outdir / 'sphinxtests.1').exists()
2016-01-08 01:00:26 -06:00
content = (app.outdir / 'sphinxtests.1').read_text(encoding='utf8')
2016-01-08 01:00:26 -06:00
assert r'\fBprint \fP\fIi\fP\fB\en\fP' in content
assert r'\fBmanpage\en\fP' in content
2021-09-11 04:47:24 -05:00
# heading (title + description)
assert r'sphinxtests \- Sphinx <Tests> 0.6alpha1' in content
# term of definition list including nodes.strong
assert '\n.B term1\n' in content
assert '\nterm2 (\\fBstronged partially\\fP)\n' in content
# test samp with braces
assert '\n\\fIvariable_only\\fP\n' in content
assert '\n\\fIvariable\\fP\\fB and text\\fP\n' in content
assert '\n\\fBShow \\fP\\fIvariable\\fP\\fB in the middle\\fP\n' in content
2018-12-08 09:35:46 -06:00
assert 'Footnotes' not in content
2021-09-11 04:47:24 -05:00
@pytest.mark.sphinx('man', testroot='basic',
confoverrides={'man_pages': [('index', 'title', None, [], 1)]})
def test_man_pages_empty_description(app):
2024-01-16 20:38:46 -06:00
app.build(force_all=True)
2021-09-11 04:47:24 -05:00
content = (app.outdir / 'title.1').read_text(encoding='utf8')
2021-09-11 04:47:24 -05:00
assert r'title \-' not in content
@pytest.mark.sphinx('man', testroot='basic',
confoverrides={'man_make_section_directory': True})
def test_man_make_section_directory(app):
app.build()
assert (app.outdir / 'man1' / 'projectnamenotset.1').exists()
@pytest.mark.sphinx('man', testroot='directive-code')
def test_captioned_code_block(app):
2024-01-16 20:38:46 -06:00
app.build(force_all=True)
content = (app.outdir / 'projectnamenotset.1').read_text(encoding='utf8')
if docutils.__version_info__[:2] < (0, 21):
expected = """\
.sp
caption \\fItest\\fP rb
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
def ruby?
false
end
.ft P
.fi
.UNINDENT
.UNINDENT
"""
else:
expected = """\
.sp
caption \\fItest\\fP rb
.INDENT 0.0
.INDENT 3.5
.sp
.EX
def ruby?
false
end
.EE
.UNINDENT
.UNINDENT
"""
assert expected in content
2019-03-10 01:52:51 -06:00
def test_default_man_pages():
config = Config({'project': 'STASI™ Documentation',
2018-12-15 08:02:28 -06:00
'author': "Wolfgang Schäuble & G'Beckstein",
'release': '1.0'})
2018-12-15 08:02:28 -06:00
expected = [('index', 'stasi', 'STASI™ Documentation 1.0',
["Wolfgang Schäuble & G'Beckstein"], 1)]
assert default_man_pages(config) == expected
@pytest.mark.sphinx('man', testroot='markup-rubric')
def test_rubric(app):
app.build()
content = (app.outdir / 'projectnamenotset.1').read_text(encoding='utf8')
assert 'This is a rubric\n' in content