feat: raw accept - incoming/ als abgeleiteter Rohablage-Eingang (schliesst #58)
Files changed: - .gitignore - CHANGES.md - README.md - VERSION - docs/pipeline-rationale.md - instructions/bootstrap.md - instructions/wiki-ingest/SKILL.md - raw/CONTRACT.md - tools/CONTRACT.md - tools/chemenu/cli.py - tools/chemenu/commands/dist_cmd.py - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/raw_cmd.py - tools/chemenu/tests/test_dist_cmd.py - tools/chemenu/tests/test_docs_verify.py - tools/chemenu/tests/test_raw_cmd.py
This commit is contained in:
1 parent
1f0ad7f9f3
commit
36d2128f29
16 files changed
+753
-46
No files matched your search
@@ -1,6 +1,7 @@
|
||||
import pytest
|
||||
import typer
|
||||
|
||||
from chemenu import config
|
||||
from chemenu.commands import docs_verify
|
||||
|
||||
|
||||
@@ -133,6 +134,31 @@ def test_legacy_type_regex_matches_pre_migration_form():
|
||||
assert not docs_verify.LEGACY_TYPE_RE.search("---\ntype: types/comparison.md\n---")
|
||||
|
||||
|
||||
def test_this_repos_raw_subdirs_are_documented():
|
||||
assert docs_verify.check_raw_subdirs() == []
|
||||
|
||||
|
||||
def test_raw_subdirs_mismatch_is_reported(tmp_path, monkeypatch):
|
||||
"""The regression this guards: `dist_cmd.RAW_SUBDIRS` and raw/CONTRACT.md's
|
||||
routing table are two places naming the same set (AGENTS.md invariant 8),
|
||||
so either one drifting from the other must be caught in both directions."""
|
||||
(tmp_path / "raw").mkdir()
|
||||
(tmp_path / "raw" / "CONTRACT.md").write_text(
|
||||
"| Directory | Holds |\n|---|---|\n| `articles/` | ... |\n| `videos/` | ... |\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
monkeypatch.setattr(config, "ROOT", tmp_path)
|
||||
monkeypatch.setattr(docs_verify.dist_cmd, "RAW_SUBDIRS", ("articles", "documents"))
|
||||
issues = docs_verify.check_raw_subdirs()
|
||||
assert any("missing `documents/`" in i for i in issues)
|
||||
assert any("lists `videos/`" in i for i in issues)
|
||||
|
||||
|
||||
def test_raw_subdirs_check_is_skipped_without_a_contract(tmp_path, monkeypatch):
|
||||
monkeypatch.setattr(config, "ROOT", tmp_path)
|
||||
assert docs_verify.check_raw_subdirs() == []
|
||||
|
||||
|
||||
def test_no_content_is_gitignored():
|
||||
"""The regression guard for the 2026-08-13 `.gitignore` rewrite: patterns
|
||||
like `*temp*` and `bin/` were silently excluding files under raw/, so the
|
||||
@@ -151,6 +177,14 @@ def test_a_swallowed_canary_is_reported():
|
||||
assert swallowed == ["tools/.wikitool_session/budget.json"]
|
||||
|
||||
|
||||
def test_incoming_inbox_is_ignored():
|
||||
"""Unlike raw/, a file under incoming/ must never be committed - promotion
|
||||
via `wikitool raw accept` is what makes it immutable, not the drop."""
|
||||
assert docs_verify.ignored_canaries(("incoming/documents/probe.pdf",)) == [
|
||||
"incoming/documents/probe.pdf"
|
||||
]
|
||||
|
||||
|
||||
def test_the_environment_note_is_ignored_but_its_template_is_not():
|
||||
"""The pattern has to split a file from its own template. `ENVIRONMENT.md`
|
||||
describes one checkout and must never be committed; `ENVIRONMENT.md.template`
|
||||
|
||||
Reference in new issue
Block a user