1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
"""Tests for the different themes we claim to support."""
from __future__ import annotations
from typing import TYPE_CHECKING
import pytest
if TYPE_CHECKING:
from mkdocstrings import MkdocstringsPlugin
@pytest.mark.parametrize(
"plugin",
[
{"theme": "mkdocs"},
{"theme": "readthedocs"},
{"theme": {"name": "material"}},
],
indirect=["plugin"],
)
@pytest.mark.parametrize(
"module",
[
"mkdocstrings.extension",
"mkdocstrings.inventory",
"mkdocstrings.loggers",
"mkdocstrings.handlers.base",
"mkdocstrings.handlers.rendering",
"mkdocstrings_handlers.python.handler",
"mkdocstrings_handlers.python.rendering",
],
)
def test_render_themes_templates(module: str, plugin: MkdocstringsPlugin) -> None:
"""Test rendering of a given theme's templates.
Parameters:
module: The module to load and render (parametrized).
plugin: The plugin instance (parametrized fixture).
"""
handler = plugin.handlers.get_handler("python")
handler._update_env(plugin.md, config=plugin.handlers._tool_config) # type: ignore[attr-defined]
options = handler.get_options({})
data = handler.collect(module, options)
handler.render(data, options)
|