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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
"""
test_autodoc
~~~~~~~~~~~~
Test with autodoc.
"""
from test.common import (
html_citation_refs_single,
html_citations,
html_footnote_refs,
html_footnotes,
)
import pytest
import sphinx
@pytest.mark.skipif(
sphinx.version_info < (7, 0),
reason="autoapi appears broken on sphinx < 7.0",
)
@pytest.mark.sphinx("html", testroot="autoapi")
def test_autoapi(app, warning) -> None:
app.build()
assert not warning.getvalue()
root = (app.outdir / "index.html").read_text()
output = (app.outdir / "autoapi/some_module/cite/index.html").read_text()
labels = [
"One",
"Two",
"Thr",
"Fou",
"Fiv",
"Six",
"Sev",
"Eig",
"Nin",
"Ten",
"Ele",
]
titles = [
"Een",
"Twee",
"Drie",
"Vier",
"Vijf",
"Zes",
"Zeven",
"Acht",
"Negen",
"Tien",
"Elf",
]
for label, title in zip(labels, titles):
assert len(html_citation_refs_single(label=label).findall(output)) == 1
assert len(html_citations(label=label).findall(root)) == 1
match_ref = html_citation_refs_single(label=label).search(output)
match = html_citations(label=label).search(root)
assert match_ref
assert match
assert match_ref.group("refid") == match.group("id_")
assert title in match.group("text")
# no backrefs as citations are in other document
# assert match_ref.group("id_") == match.group("backref")
output2 = (app.outdir / "autoapi/some_module/footcite/index.html").read_text()
assert len(html_footnote_refs().findall(output2)) == 11
for title in titles:
text = ".*" + title + ".*"
assert len(html_footnotes(text=text).findall(output2)) == 1
match = html_footnotes(text=text).search(output2)
assert match
id_ = match.group("id_")
assert len(html_footnote_refs(refid=id_).findall(output2)) == 1
|