summaryrefslogtreecommitdiffstats
path: root/tests/test_build_manpage.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 11:31:33 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 11:31:33 +0000
commite863fd965dd6253243c3342bd6f0adc4fc8aec4d (patch)
treea4c1b6491a82593950043c3f8b2530e80664d768 /tests/test_build_manpage.py
parentInitial commit. (diff)
downloadsphinx-upstream.tar.xz
sphinx-upstream.zip
Adding upstream version 5.3.0.upstream/5.3.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/test_build_manpage.py')
-rw-r--r--tests/test_build_manpage.py84
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/test_build_manpage.py b/tests/test_build_manpage.py
new file mode 100644
index 0000000..8509684
--- /dev/null
+++ b/tests/test_build_manpage.py
@@ -0,0 +1,84 @@
+"""Test the build process with manpage builder with the test root."""
+
+import pytest
+
+from sphinx.builders.manpage import default_man_pages
+from sphinx.config import Config
+
+
+@pytest.mark.sphinx('man')
+def test_all(app, status, warning):
+ app.builder.build_all()
+ assert (app.outdir / 'sphinxtests.1').exists()
+
+ content = (app.outdir / 'sphinxtests.1').read_text(encoding='utf8')
+ assert r'\fBprint \fP\fIi\fP\fB\en\fP' in content
+ assert r'\fBmanpage\en\fP' in content
+
+ # 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
+
+ assert 'Footnotes' not in content
+
+
+@pytest.mark.sphinx('man', testroot='basic',
+ confoverrides={'man_pages': [('index', 'title', None, [], 1)]})
+def test_man_pages_empty_description(app, status, warning):
+ app.builder.build_all()
+
+ content = (app.outdir / 'title.1').read_text(encoding='utf8')
+ 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, status, warning):
+ app.build()
+ assert (app.outdir / 'man1' / 'python.1').exists()
+
+
+@pytest.mark.sphinx('man', testroot='directive-code')
+def test_captioned_code_block(app, status, warning):
+ app.builder.build_all()
+ content = (app.outdir / 'python.1').read_text(encoding='utf8')
+
+ assert ('.sp\n'
+ 'caption \\fItest\\fP rb\n'
+ '.INDENT 0.0\n'
+ '.INDENT 3.5\n'
+ '.sp\n'
+ '.nf\n'
+ '.ft C\n'
+ 'def ruby?\n'
+ ' false\n'
+ 'end\n'
+ '.ft P\n'
+ '.fi\n'
+ '.UNINDENT\n'
+ '.UNINDENT\n' in content)
+
+
+def test_default_man_pages():
+ config = Config({'project': 'STASI™ Documentation',
+ 'author': "Wolfgang Schäuble & G'Beckstein",
+ 'release': '1.0'})
+ config.init_values()
+ 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, status, warning):
+ app.build()
+ content = (app.outdir / 'python.1').read_text(encoding='utf8')
+ assert 'This is a rubric\n' in content