mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Add `tests/test_theming/test_theming.py::test_theme_builds`, which is a parametrized test against all builtin sphinx HTML themes, that tests: 1. that the themes builds without warnings for a basic project, and 2. that all `.html` files it produces are valid XML (see https://html.spec.whatwg.org/) https://pypi.org/project/defusedxml/ was added to the test dependencies, in order to safely parse the XML This required one fix for `sphinx/themes/basic/search.html`, and one for `sphinx/themes/bizstyle/layout.html` Also, `tests/test_theming` was removed from the `ruff format` exclude list
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
"""Test templating."""
|
|
|
|
import pytest
|
|
|
|
from sphinx.ext.autosummary.generate import setup_documenters
|
|
|
|
|
|
@pytest.mark.sphinx('html', testroot='templating')
|
|
def test_layout_overloading(make_app, app_params):
|
|
args, kwargs = app_params
|
|
app = make_app(*args, **kwargs)
|
|
setup_documenters(app)
|
|
app.build()
|
|
|
|
result = (app.outdir / 'index.html').read_text(encoding='utf8')
|
|
assert '<!-- layout overloading -->' in result
|
|
|
|
|
|
@pytest.mark.sphinx('html', testroot='templating')
|
|
def test_autosummary_class_template_overloading(make_app, app_params):
|
|
args, kwargs = app_params
|
|
app = make_app(*args, **kwargs)
|
|
setup_documenters(app)
|
|
app.build()
|
|
|
|
result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').read_text(
|
|
encoding='utf8'
|
|
)
|
|
assert 'autosummary/class.rst method block overloading' in result
|
|
assert 'foobar' not in result
|
|
|
|
|
|
@pytest.mark.sphinx(
|
|
'html',
|
|
testroot='templating',
|
|
confoverrides={'autosummary_context': {'sentence': 'foobar'}},
|
|
)
|
|
def test_autosummary_context(make_app, app_params):
|
|
args, kwargs = app_params
|
|
app = make_app(*args, **kwargs)
|
|
setup_documenters(app)
|
|
app.build()
|
|
|
|
result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').read_text(
|
|
encoding='utf8'
|
|
)
|
|
assert 'autosummary/class.rst method block overloading' in result
|
|
assert 'foobar' in result
|