docs verify: nur als .template ausgeliefertes Linkziel gilt als aufgeloest (Defekt aus 0fb8fd6)
Files changed: - CHANGES.md - VERSION - tools/chemenu/commands/docs_verify.py - tools/chemenu/tests/test_docs_verify.py
This commit is contained in:
1 parent
f140e26a4c
commit
c0dc2129bb
4 files changed
+83
-7
No files matched your search
@@ -586,6 +586,34 @@ def test_link_syntax_shown_as_an_example_in_a_fence_is_not_flagged(tmp_path, mon
|
||||
assert docs_verify.check_reference_targets() == []
|
||||
|
||||
|
||||
def test_a_target_shipped_only_as_a_template_is_not_dead(tmp_path, monkeypatch):
|
||||
"""Regression guard for a defect this check shipped with. A fresh
|
||||
`dist export` carries `kb/CONVENTIONS.md.template`, not
|
||||
`kb/CONVENTIONS.md` - the instance adopts it by renaming, during
|
||||
`setup-instance.md`'s personalization step. `kb/CONTRACT.md` and three
|
||||
flat instructions link to the adopted name, correctly. Before this
|
||||
exemption the check reported 13 dead links on a just-exported tree, for
|
||||
doing exactly what a fresh export is supposed to do."""
|
||||
(tmp_path / "kb").mkdir()
|
||||
(tmp_path / "kb" / "CONVENTIONS.md.template").write_text("# Conventions\n", encoding="utf-8")
|
||||
fake = tmp_path / "kb" / "CONTRACT.md"
|
||||
fake.write_text("What this instance decided: [kb/CONVENTIONS.md](CONVENTIONS.md).\n", encoding="utf-8")
|
||||
monkeypatch.setattr(docs_verify.toc, "target_files", lambda: [fake])
|
||||
assert docs_verify.check_reference_targets() == []
|
||||
|
||||
|
||||
def test_a_target_with_neither_the_file_nor_a_template_is_still_dead(tmp_path, monkeypatch):
|
||||
"""The exemption is narrow: it covers a file the stack ships as a
|
||||
template, not any missing target."""
|
||||
(tmp_path / "kb").mkdir()
|
||||
fake = tmp_path / "kb" / "CONTRACT.md"
|
||||
fake.write_text("See [kb/CONVENTIONS.md](CONVENTIONS.md).\n", encoding="utf-8")
|
||||
monkeypatch.setattr(docs_verify.toc, "target_files", lambda: [fake])
|
||||
issues = docs_verify.check_reference_targets()
|
||||
assert len(issues) == 1
|
||||
assert "CONVENTIONS.md" in issues[0]
|
||||
|
||||
|
||||
def test_every_reference_files_link_targets_resolve():
|
||||
"""Forward direction, against the real tree: every relative link in a file
|
||||
`toc.target_files()` covers must resolve - this is what a `../` count
|
||||
|
||||
Reference in new issue
Block a user