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
|
import json
import os
from pathlib import Path
import pytest
from sphinx.util.console import strip_colors
@pytest.mark.parametrize(
"test_app",
[{"buildername": "html", "srcdir": "doc_test/doc_need_parts", "no_plantuml": True}],
indirect=True,
)
def test_doc_need_parts(test_app, snapshot):
app = test_app
app.build()
warnings = strip_colors(
app._warning.getvalue().replace(str(app.srcdir) + os.sep, "srcdir/")
).splitlines()
# print(warnings)
assert warnings == []
html = Path(app.outdir, "index.html").read_text()
assert (
'<span class="need-part" id="SP_TOO_001.1">exit()<a class="needs-id reference internal" '
'href="#SP_TOO_001.1"> 1</a></span>' in html
)
assert '<em class="xref need">exit() (SP_TOO_001.1)</em>' in html
assert '<em class="xref need">start() (SP_TOO_001.2)</em>' in html
assert '<em class="xref need">blub() (SP_TOO_001.awesome_id)</em>' in html
assert (
'<em class="xref need">My custom link name (SP_TOO_001.awesome_id)</em>' in html
)
assert "SP_TOO_001" in html
data = json.loads(Path(app.outdir, "needs.json").read_text())
assert data["versions"][""]["needs"] == snapshot
|