8000 fix: Fix examples rendering · mkdocstrings/python@a06a7e3 · GitHub
[go: up one dir, main page]

Skip to content

Commit a06a7e3

Browse files
committed
fix: Fix examples rendering
Issue mkdocstrings/griffe#46: mkdocstrings/griffe#46
1 parent 78f970d commit a06a7e3

File tree

4 files changed

+51
-3
lines changed

4 files changed

+51
-3
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{{ log.debug("Rendering examples section") }}
22
<p><strong>{{ section.title or "Examples:" }}</strong></p>
33
{% for section_type, sub_section in section.value %}
4-
{% if section_type == "markdown" %}
4+
{% if section_type.value == "text" %}
55
{{ sub_section|convert_markdown(heading_level, html_id) }}
6-
{% elif section_type == "examples" %}
6+
{% elif section_type.value == "examples" %}
77
{{ sub_section|highlight(language="python", linenums=False) }}
88
{% endif %}
99
{% endfor %}

tests/conftest.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,18 @@ def fixture_ext_markdown(plugin):
8484
A Markdown instance.
8585
"""
8686
return plugin.md
87+
88+
89+
@pytest.fixture(name="renderer")
90+
def fixture_renderer(plugin):
91+
"""Return a PythonRenderer instance.
92+
93+
Parameters:
94+
plugin: Pytest fixture: [tests.conftest.fixture_plugin][].
95+
96+
Returns:
97+
A renderer instance.
98+
"""
99+
handler = plugin.handlers.get_handler("python")
100+
handler.renderer._update_env(plugin.md, plugin.handlers._config) # noqa: WPS437
101+
return handler.renderer

tests/test_collector.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Tests for the handlers.python module."""
1+
"""Tests for the `collector` module."""
22

33
import pytest
44

tests/test_renderer.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"""Tests for the `renderer` module."""
2+
3+
import pytest
4+
from griffe.docstrings.dataclasses import DocstringSection, DocstringSectionKind
5+
6+
7+
@pytest.mark.parametrize(
8+
"renderer",
9+
[
10+
{"theme": "mkdocs"},
11+
{"theme": "readthedocs"},
12+
{"theme": {"name": "material"}},
13+
],
14+
indirect=["renderer"],
15+
)
16+
def test_render_docstring_examples_section(renderer):
17+
"""Assert docstrings' examples section can be rendered.
18+
19+
Parameters:
20+
renderer: A renderer instance (parametrized).
21+
"""
22+
section = DocstringSection(
23+
DocstringSectionKind.examples,
24+
value=[
25+
(DocstringSectionKind.text, "This is an example."),
26+
(DocstringSectionKind.examples, ">>> print('Hello')\nHello"),
27+
],
28+
)
29+
template = renderer.env.get_template("docstring/examples.html")
30+
rendered = template.render(section=section)
31+
assert "<p>This is an example.</p>" in rendered
32+
assert "print" in rendered
33+
assert "Hello" in rendered

0 commit comments

Comments
 (0)
0