summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2017-12-31 20:43:16 +0900
committerGitHub <noreply@github.com>2017-12-31 20:43:16 +0900
commit1cae50f74833fc3506ebee19462e0a1457638352 (patch)
tree5e7b9714b84288b1ca04438b73611a78aa4c23df /tests
parent1b664248f4ed5e00f89574bd6568e86b29a9df0f (diff)
parent0059c05a857f4144e4eea8b3d2908e906cf7de49 (diff)
downloadsphinx-git-1cae50f74833fc3506ebee19462e0a1457638352.tar.gz
Merge branch 'stable' into 4a164170-33e9-4df3-aad2-a13af37b6b43
Diffstat (limited to 'tests')
-rw-r--r--tests/roots/test-builder-gettext-dont-rebuild-mo/bom.po (renamed from tests/roots/test-root/bom.po)0
-rw-r--r--tests/roots/test-builder-gettext-dont-rebuild-mo/bom.rst5
-rw-r--r--tests/roots/test-builder-gettext-dont-rebuild-mo/conf.py7
-rw-r--r--tests/roots/test-builder-gettext-dont-rebuild-mo/index.rst6
-rw-r--r--tests/roots/test-directive-code/emphasize.rst7
-rw-r--r--tests/roots/test-latex-table/expects/longtable_having_verbatim.tex1
-rw-r--r--tests/roots/test-latex-table/expects/table_having_verbatim.tex1
-rw-r--r--tests/roots/test-root/_static/README1
-rw-r--r--tests/roots/test-root/_static/excluded.css1
-rw-r--r--tests/roots/test-root/_static/subdir/foo.css1
-rw-r--r--tests/roots/test-root/conf.py5
-rw-r--r--tests/roots/test-root/robots.txt2
-rw-r--r--tests/roots/test-root/subdir.po9
-rw-r--r--tests/roots/test-root/templated.css_t2
-rw-r--r--tests/roots/test-theming/test_theme/staticfiles/layout.html (renamed from tests/roots/test-root/testtheme/layout.html)0
-rw-r--r--tests/roots/test-theming/test_theme/staticfiles/static/staticimg.png (renamed from tests/roots/test-root/testtheme/static/staticimg.png)bin120 -> 120 bytes
-rw-r--r--tests/roots/test-theming/test_theme/staticfiles/static/statictmpl.html_t (renamed from tests/roots/test-root/testtheme/static/statictmpl.html_t)0
-rw-r--r--tests/roots/test-theming/test_theme/staticfiles/theme.conf (renamed from tests/roots/test-root/testtheme/theme.conf)0
-rw-r--r--tests/roots/test-theming/ziptheme.zip (renamed from tests/roots/test-root/ziptheme.zip)bin1039 -> 1039 bytes
-rw-r--r--tests/test_build.py8
-rw-r--r--tests/test_build_html.py57
-rw-r--r--tests/test_build_html5.py4
-rw-r--r--tests/test_build_latex.py50
-rw-r--r--tests/test_directive_code.py8
-rw-r--r--tests/test_intl.py4
-rw-r--r--tests/test_markup.py3
-rw-r--r--tests/test_theming.py23
27 files changed, 123 insertions, 82 deletions
diff --git a/tests/roots/test-root/bom.po b/tests/roots/test-builder-gettext-dont-rebuild-mo/bom.po
index c6025eb1e..c6025eb1e 100644
--- a/tests/roots/test-root/bom.po
+++ b/tests/roots/test-builder-gettext-dont-rebuild-mo/bom.po
diff --git a/tests/roots/test-builder-gettext-dont-rebuild-mo/bom.rst b/tests/roots/test-builder-gettext-dont-rebuild-mo/bom.rst
new file mode 100644
index 000000000..3fea824f8
--- /dev/null
+++ b/tests/roots/test-builder-gettext-dont-rebuild-mo/bom.rst
@@ -0,0 +1,5 @@
+File with UTF-8 BOM
+===================
+
+This file has a UTF-8 "BOM".
+
diff --git a/tests/roots/test-builder-gettext-dont-rebuild-mo/conf.py b/tests/roots/test-builder-gettext-dont-rebuild-mo/conf.py
new file mode 100644
index 000000000..31e7a6ed4
--- /dev/null
+++ b/tests/roots/test-builder-gettext-dont-rebuild-mo/conf.py
@@ -0,0 +1,7 @@
+# -*- coding: utf-8 -*-
+
+master_doc = 'index'
+
+latex_documents = [
+ (master_doc, 'test.tex', 'The basic Sphinx documentation for testing', 'Sphinx', 'report')
+]
diff --git a/tests/roots/test-builder-gettext-dont-rebuild-mo/index.rst b/tests/roots/test-builder-gettext-dont-rebuild-mo/index.rst
new file mode 100644
index 000000000..7ff38c5a8
--- /dev/null
+++ b/tests/roots/test-builder-gettext-dont-rebuild-mo/index.rst
@@ -0,0 +1,6 @@
+The basic Sphinx documentation for testing
+==========================================
+
+.. toctree::
+
+ bom
diff --git a/tests/roots/test-directive-code/emphasize.rst b/tests/roots/test-directive-code/emphasize.rst
new file mode 100644
index 000000000..95db574ce
--- /dev/null
+++ b/tests/roots/test-directive-code/emphasize.rst
@@ -0,0 +1,7 @@
+Literal Includes with Highlighted Lines
+=======================================
+
+.. literalinclude:: target.py
+ :language: python
+ :emphasize-lines: 5-6, 13-15, 24-
+
diff --git a/tests/roots/test-latex-table/expects/longtable_having_verbatim.tex b/tests/roots/test-latex-table/expects/longtable_having_verbatim.tex
index 979385785..7b4fb6964 100644
--- a/tests/roots/test-latex-table/expects/longtable_having_verbatim.tex
+++ b/tests/roots/test-latex-table/expects/longtable_having_verbatim.tex
@@ -27,6 +27,7 @@ header2
\endlastfoot
+\fvset{hllines={, ,}}%
\begin{sphinxVerbatimintable}[commandchars=\\\{\}]
\PYG{n}{hello} \PYG{n}{world}
\end{sphinxVerbatimintable}
diff --git a/tests/roots/test-latex-table/expects/table_having_verbatim.tex b/tests/roots/test-latex-table/expects/table_having_verbatim.tex
index d8231817a..4a49e4cbb 100644
--- a/tests/roots/test-latex-table/expects/table_having_verbatim.tex
+++ b/tests/roots/test-latex-table/expects/table_having_verbatim.tex
@@ -10,6 +10,7 @@ header1
header2
\unskip}\relax \\
\hline
+\fvset{hllines={, ,}}%
\begin{sphinxVerbatimintable}[commandchars=\\\{\}]
\PYG{n}{hello} \PYG{n}{world}
\end{sphinxVerbatimintable}
diff --git a/tests/roots/test-root/_static/README b/tests/roots/test-root/_static/README
deleted file mode 100644
index 9e1ec3569..000000000
--- a/tests/roots/test-root/_static/README
+++ /dev/null
@@ -1 +0,0 @@
-This whole directory is there to test html_static_path.
diff --git a/tests/roots/test-root/_static/excluded.css b/tests/roots/test-root/_static/excluded.css
deleted file mode 100644
index 03c941a44..000000000
--- a/tests/roots/test-root/_static/excluded.css
+++ /dev/null
@@ -1 +0,0 @@
-/* This file should be excluded from being copied over */
diff --git a/tests/roots/test-root/_static/subdir/foo.css b/tests/roots/test-root/_static/subdir/foo.css
deleted file mode 100644
index 9427981d6..000000000
--- a/tests/roots/test-root/_static/subdir/foo.css
+++ /dev/null
@@ -1 +0,0 @@
-/* Stub file */
diff --git a/tests/roots/test-root/conf.py b/tests/roots/test-root/conf.py
index a23aec482..bd3cb9a9b 100644
--- a/tests/roots/test-root/conf.py
+++ b/tests/roots/test-root/conf.py
@@ -29,15 +29,10 @@ numfig = True
rst_epilog = '.. |subst| replace:: global substitution'
-html_theme = 'testtheme'
-html_theme_path = ['.']
-html_theme_options = {'testopt': 'testoverride'}
html_sidebars = {'**': 'customsb.html',
'contents': ['contentssb.html', 'localtoc.html',
'globaltoc.html']}
html_style = 'default.css'
-html_static_path = ['_static', 'templated.css_t']
-html_extra_path = ['robots.txt']
html_last_updated_fmt = '%b %d, %Y'
html_context = {'hckey': 'hcval', 'hckey_co': 'wrong_hcval_co'}
diff --git a/tests/roots/test-root/robots.txt b/tests/roots/test-root/robots.txt
deleted file mode 100644
index 1b425ee0f..000000000
--- a/tests/roots/test-root/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /cgi-bin/
diff --git a/tests/roots/test-root/subdir.po b/tests/roots/test-root/subdir.po
deleted file mode 100644
index f515f2207..000000000
--- a/tests/roots/test-root/subdir.po
+++ /dev/null
@@ -1,9 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid "Including in subdir"
-msgstr "translation"
diff --git a/tests/roots/test-root/templated.css_t b/tests/roots/test-root/templated.css_t
deleted file mode 100644
index 72ddb807c..000000000
--- a/tests/roots/test-root/templated.css_t
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Stub file, templated */
-{{ sphinx_version }}
diff --git a/tests/roots/test-root/testtheme/layout.html b/tests/roots/test-theming/test_theme/staticfiles/layout.html
index 81372be0f..81372be0f 100644
--- a/tests/roots/test-root/testtheme/layout.html
+++ b/tests/roots/test-theming/test_theme/staticfiles/layout.html
diff --git a/tests/roots/test-root/testtheme/static/staticimg.png b/tests/roots/test-theming/test_theme/staticfiles/static/staticimg.png
index fda6cd29e..fda6cd29e 100644
--- a/tests/roots/test-root/testtheme/static/staticimg.png
+++ b/tests/roots/test-theming/test_theme/staticfiles/static/staticimg.png
Binary files differ
diff --git a/tests/roots/test-root/testtheme/static/statictmpl.html_t b/tests/roots/test-theming/test_theme/staticfiles/static/statictmpl.html_t
index 4ab292b42..4ab292b42 100644
--- a/tests/roots/test-root/testtheme/static/statictmpl.html_t
+++ b/tests/roots/test-theming/test_theme/staticfiles/static/statictmpl.html_t
diff --git a/tests/roots/test-root/testtheme/theme.conf b/tests/roots/test-theming/test_theme/staticfiles/theme.conf
index a87767379..a87767379 100644
--- a/tests/roots/test-root/testtheme/theme.conf
+++ b/tests/roots/test-theming/test_theme/staticfiles/theme.conf
diff --git a/tests/roots/test-root/ziptheme.zip b/tests/roots/test-theming/ziptheme.zip
index 8a246ed98..8a246ed98 100644
--- a/tests/roots/test-root/ziptheme.zip
+++ b/tests/roots/test-theming/ziptheme.zip
Binary files differ
diff --git a/tests/test_build.py b/tests/test_build.py
index 2372b102b..c61fbb5c2 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -59,13 +59,13 @@ def nonascii_srcdir(request, rootdir, sphinx_test_tempdir):
return srcdir
+# note: this test skips building docs for some builders because they have independent testcase.
+# (html, latex, texinfo and manpage)
@pytest.mark.parametrize(
"buildername",
[
- # note: no 'html' - if it's ok with dirhtml it's ok with html
- 'dirhtml', 'singlehtml', 'latex', 'texinfo', 'pickle', 'json', 'text',
- 'htmlhelp', 'qthelp', 'epub2', 'epub', 'applehelp', 'changes', 'xml',
- 'pseudoxml', 'man', 'linkcheck',
+ 'dirhtml', 'singlehtml', 'pickle', 'json', 'text', 'htmlhelp', 'qthelp',
+ 'epub2', 'epub', 'applehelp', 'changes', 'xml', 'pseudoxml', 'linkcheck',
],
)
@mock.patch('sphinx.builders.linkcheck.requests.head',
diff --git a/tests/test_build_html.py b/tests/test_build_html.py
index ceeb5f01c..0ccd4da01 100644
--- a/tests/test_build_html.py
+++ b/tests/test_build_html.py
@@ -126,24 +126,6 @@ def check_xpath(etree, fname, path, check, be_found=True):
[node.text for node in nodes]))
-def check_static_entries(outdir):
- staticdir = outdir / '_static'
- assert staticdir.isdir()
- # a file from a directory entry in html_static_path
- assert (staticdir / 'README').isfile()
- # a directory from a directory entry in html_static_path
- assert (staticdir / 'subdir' / 'foo.css').isfile()
- # a file from a file entry in html_static_path
- assert (staticdir / 'templated.css').isfile()
- assert (staticdir / 'templated.css').text().splitlines()[1] == __display_version__
- # a file from _static, but matches exclude_patterns
- assert not (staticdir / 'excluded.css').exists()
-
-
-def check_extra_entries(outdir):
- assert (outdir / 'robots.txt').isfile()
-
-
@pytest.mark.sphinx('html', testroot='warnings')
def test_html_warnings(app, warning):
app.build()
@@ -156,15 +138,6 @@ def test_html_warnings(app, warning):
'--- Got:\n' + html_warnings
-@pytest.mark.sphinx('html', tags=['testtag'], confoverrides={
- 'html_context.hckey_co': 'hcval_co'})
-@pytest.mark.test_params(shared_result='test_build_html_output')
-def test_static_output(app):
- app.build()
- check_static_entries(app.builder.outdir)
- check_extra_entries(app.builder.outdir)
-
-
@pytest.mark.parametrize("fname,expect", flat_dict({
'images.html': [
(".//img[@src='_images/img.png']", ''),
@@ -377,7 +350,6 @@ def test_static_output(app):
'contents.html': [
(".//meta[@name='hc'][@content='hcval']", ''),
(".//meta[@name='hc_co'][@content='hcval_co']", ''),
- (".//meta[@name='testopt'][@content='testoverride']", ''),
(".//td[@class='label']", r'\[Ref1\]'),
(".//td[@class='label']", ''),
(".//li[@class='toctree-l1']/a", 'Testing various markup'),
@@ -410,9 +382,6 @@ def test_static_output(app):
(".//a[@href='http://bugs.python.org/issue1000']", "issue 1000"),
(".//a[@href='http://bugs.python.org/issue1042']", "explicit caption"),
],
- '_static/statictmpl.html': [
- (".//project", 'Sphinx <Tests>'),
- ],
'genindex.html': [
# index entries
(".//a/strong", "Main"),
@@ -1145,16 +1114,28 @@ def test_html_assets(app):
assert not (app.outdir / 'subdir' / '.htpasswd').exists()
-@pytest.mark.sphinx('html', confoverrides={'html_sourcelink_suffix': ''})
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_copy_source': False})
+def test_html_copy_source(app):
+ app.builder.build_all()
+ assert not (app.outdir / '_sources' / 'index.rst.txt').exists()
+
+
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': '.txt'})
def test_html_sourcelink_suffix(app):
app.builder.build_all()
- content_otherext = (app.outdir / 'otherext.html').text()
- content_images = (app.outdir / 'images.html').text()
+ assert (app.outdir / '_sources' / 'index.rst.txt').exists()
+
- assert '<a href="_sources/otherext.foo"' in content_otherext
- assert '<a href="_sources/images.txt"' in content_images
- assert (app.outdir / '_sources' / 'otherext.foo').exists()
- assert (app.outdir / '_sources' / 'images.txt').exists()
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': '.rst'})
+def test_html_sourcelink_suffix_same(app):
+ app.builder.build_all()
+ assert (app.outdir / '_sources' / 'index.rst').exists()
+
+
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': ''})
+def test_html_sourcelink_suffix_empty(app):
+ app.builder.build_all()
+ assert (app.outdir / '_sources' / 'index.rst').exists()
@pytest.mark.sphinx('html', testroot='html_entity')
diff --git a/tests/test_build_html5.py b/tests/test_build_html5.py
index 7fc91b9ec..4ad282973 100644
--- a/tests/test_build_html5.py
+++ b/tests/test_build_html5.py
@@ -252,7 +252,6 @@ def cached_etree_parse():
'contents.html': [
(".//meta[@name='hc'][@content='hcval']", ''),
(".//meta[@name='hc_co'][@content='hcval_co']", ''),
- (".//meta[@name='testopt'][@content='testoverride']", ''),
(".//dt[@class='label']/span[@class='brackets']", r'Ref1'),
(".//dt[@class='label']", ''),
(".//li[@class='toctree-l1']/a", 'Testing various markup'),
@@ -285,9 +284,6 @@ def cached_etree_parse():
(".//a[@href='http://bugs.python.org/issue1000']", "issue 1000"),
(".//a[@href='http://bugs.python.org/issue1042']", "explicit caption"),
],
- '_static/statictmpl.html': [
- (".//project", 'Sphinx <Tests>'),
- ],
'genindex.html': [
# index entries
(".//a/strong", "Main"),
diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py
index b1ba73730..faa2f46a7 100644
--- a/tests/test_build_latex.py
+++ b/tests/test_build_latex.py
@@ -713,20 +713,16 @@ def test_latex_logo_if_not_found(app, status, warning):
assert isinstance(exc, SphinxError)
-@pytest.mark.sphinx('latex', testroot='toctree-maxdepth',
- confoverrides={'latex_documents': [
- ('index', 'SphinxTests.tex', 'Sphinx Tests Documentation',
- 'Georg Brandl', 'manual'),
- ]})
+@pytest.mark.sphinx('latex', testroot='toctree-maxdepth')
def test_toctree_maxdepth_manual(app, status, warning):
app.builder.build_all()
- result = (app.outdir / 'SphinxTests.tex').text(encoding='utf8')
+ result = (app.outdir / 'Python.tex').text(encoding='utf8')
print(result)
print(status.getvalue())
print(warning.getvalue())
assert '\\setcounter{tocdepth}{1}' in result
assert '\\setcounter{secnumdepth}' not in result
-
+ assert '\\chapter{Foo}' in result
@pytest.mark.sphinx(
'latex', testroot='toctree-maxdepth',
@@ -742,7 +738,7 @@ def test_toctree_maxdepth_howto(app, status, warning):
print(warning.getvalue())
assert '\\setcounter{tocdepth}{2}' in result
assert '\\setcounter{secnumdepth}' not in result
-
+ assert '\\section{Foo}' in result
@pytest.mark.sphinx(
'latex', testroot='toctree-maxdepth',
@@ -755,7 +751,7 @@ def test_toctree_not_found(app, status, warning):
print(warning.getvalue())
assert '\\setcounter{tocdepth}' not in result
assert '\\setcounter{secnumdepth}' not in result
-
+ assert '\\chapter{Foo A}' in result
@pytest.mark.sphinx(
'latex', testroot='toctree-maxdepth',
@@ -805,6 +801,26 @@ def test_latex_toplevel_sectioning_is_part(app, status, warning):
print(status.getvalue())
print(warning.getvalue())
assert '\\part{Foo}' in result
+ assert '\\chapter{Foo A}' in result
+ assert '\\chapter{Foo B}' in result
+
+
+@pytest.mark.sphinx(
+ 'latex', testroot='toctree-maxdepth',
+ confoverrides={'latex_toplevel_sectioning': 'part',
+ 'latex_documents': [
+ ('index', 'Python.tex', 'Sphinx Tests Documentation',
+ 'Georg Brandl', 'howto')
+ ]})
+def test_latex_toplevel_sectioning_is_part_with_howto(app, status, warning):
+ app.builder.build_all()
+ result = (app.outdir / 'Python.tex').text(encoding='utf8')
+ print(result)
+ print(status.getvalue())
+ print(warning.getvalue())
+ assert '\\part{Foo}' in result
+ assert '\\section{Foo A}' in result
+ assert '\\section{Foo B}' in result
@pytest.mark.sphinx(
@@ -821,6 +837,22 @@ def test_latex_toplevel_sectioning_is_chapter(app, status, warning):
@pytest.mark.sphinx(
'latex', testroot='toctree-maxdepth',
+ confoverrides={'latex_toplevel_sectioning': 'chapter',
+ 'latex_documents': [
+ ('index', 'Python.tex', 'Sphinx Tests Documentation',
+ 'Georg Brandl', 'howto')
+ ]})
+def test_latex_toplevel_sectioning_is_chapter_with_howto(app, status, warning):
+ app.builder.build_all()
+ result = (app.outdir / 'Python.tex').text(encoding='utf8')
+ print(result)
+ print(status.getvalue())
+ print(warning.getvalue())
+ assert '\\section{Foo}' in result
+
+
+@pytest.mark.sphinx(
+ 'latex', testroot='toctree-maxdepth',
confoverrides={'latex_toplevel_sectioning': 'section'})
def test_latex_toplevel_sectioning_is_section(app, status, warning):
app.builder.build_all()
diff --git a/tests/test_directive_code.py b/tests/test_directive_code.py
index 548a5d72c..e3069061b 100644
--- a/tests/test_directive_code.py
+++ b/tests/test_directive_code.py
@@ -349,6 +349,14 @@ def test_code_block_namedlink_latex(app, status, warning):
assert link2 in latex
+@pytest.mark.sphinx('latex', testroot='directive-code')
+def test_code_block_emphasize_latex(app, status, warning):
+ app.builder.build(['emphasize'])
+ latex = (app.outdir / 'Python.tex').text(encoding='utf-8').replace('\r\n', '\n')
+ includes = '\\fvset{hllines={, 5, 6, 13, 14, 15, 24, 25, 26, 27,}}%\n'
+ assert includes in latex
+
+
@pytest.mark.sphinx('xml', testroot='directive-code')
def test_literal_include(app, status, warning):
app.builder.build(['index'])
diff --git a/tests/test_intl.py b/tests/test_intl.py
index 8eff52340..6b72438bd 100644
--- a/tests/test_intl.py
+++ b/tests/test_intl.py
@@ -520,7 +520,7 @@ def test_gettext_buildr_ignores_only_directive(app):
@sphinx_intl
# use individual shared_result directory to avoid "incompatible doctree" error
-@pytest.mark.test_params(shared_result='test_gettext_dont_rebuild_mo')
+@pytest.mark.sphinx(testroot='builder-gettext-dont-rebuild-mo')
def test_gettext_dont_rebuild_mo(make_app, app_params, build_mo):
# --- don't rebuild by .mo mtime
def get_number_of_update_targets(app_):
@@ -533,7 +533,7 @@ def test_gettext_dont_rebuild_mo(make_app, app_params, build_mo):
app0 = make_app('dummy', *args, **kwargs)
build_mo(app0.srcdir)
app0.build()
- assert (app0.srcdir / 'bom.mo')
+ assert (app0.srcdir / 'xx' / 'LC_MESSAGES' / 'bom.mo').exists()
# Since it is after the build, the number of documents to be updated is 0
assert get_number_of_update_targets(app0) == 0
# When rewriting the timestamp of mo file, the number of documents to be
diff --git a/tests/test_markup.py b/tests/test_markup.py
index dfa4d74cf..9c41845fc 100644
--- a/tests/test_markup.py
+++ b/tests/test_markup.py
@@ -211,7 +211,8 @@ def get_verifier(verify, verify_re):
'verify',
u'::\n\n @Γ\\∞${}',
None,
- (u'\\begin{sphinxVerbatim}[commandchars=\\\\\\{\\}]\n'
+ (u'\\fvset{hllines={, ,}}%\n'
+ u'\\begin{sphinxVerbatim}[commandchars=\\\\\\{\\}]\n'
u'@\\(\\Gamma\\)\\PYGZbs{}\\(\\infty\\)\\PYGZdl{}\\PYGZob{}\\PYGZcb{}\n'
u'\\end{sphinxVerbatim}'),
),
diff --git a/tests/test_theming.py b/tests/test_theming.py
index ef9656bc5..176c9eebc 100644
--- a/tests/test_theming.py
+++ b/tests/test_theming.py
@@ -17,6 +17,7 @@ from sphinx.theming import ThemeError
@pytest.mark.sphinx(
+ testroot='theming',
confoverrides={'html_theme': 'ziptheme',
'html_theme_options.testopt': 'foo'})
def test_theme_api(app, status, warning):
@@ -25,10 +26,11 @@ def test_theme_api(app, status, warning):
# test Theme class API
assert set(app.html_themes.keys()) == \
set(['basic', 'default', 'scrolls', 'agogo', 'sphinxdoc', 'haiku',
- 'traditional', 'testtheme', 'ziptheme', 'epub', 'nature',
- 'pyramid', 'bizstyle', 'classic', 'nonav'])
- assert app.html_themes['testtheme'] == app.srcdir / 'testtheme'
+ 'traditional', 'epub', 'nature', 'pyramid', 'bizstyle', 'classic', 'nonav',
+ 'test-theme', 'ziptheme', 'staticfiles', 'parent', 'child'])
+ assert app.html_themes['test-theme'] == app.srcdir / 'test_theme' / 'test-theme'
assert app.html_themes['ziptheme'] == app.srcdir / 'ziptheme.zip'
+ assert app.html_themes['staticfiles'] == app.srcdir / 'test_theme' / 'staticfiles'
# test Theme instance API
theme = app.builder.theme
@@ -93,3 +95,18 @@ def test_double_inheriting_theme(app, status, warning):
def test_nested_zipped_theme(app, status, warning):
assert app.builder.theme.name == 'child'
app.build() # => not raises TemplateNotFound
+
+
+@pytest.mark.sphinx(testroot='theming',
+ confoverrides={'html_theme': 'staticfiles'})
+def test_staticfiles(app, status, warning):
+ app.build()
+ assert (app.outdir / '_static' / 'staticimg.png').exists()
+ assert (app.outdir / '_static' / 'statictmpl.html').exists()
+ assert (app.outdir / '_static' / 'statictmpl.html').text() == (
+ '<!-- testing static templates -->\n'
+ '<html><project>Python</project></html>'
+ )
+
+ result = (app.outdir / 'index.html').text()
+ assert '<meta name="testopt" content="optdefault" />' in result