test: the commit check starts every request clean, and the fence docs claim what it holds

The test's own writes are committed before a request, so a handler's Core DML can no longer hide
in a transaction the test had already opened. The entry-point probe answers on a marked line the
API's logging cannot mix into. A listed commit whose function no longer commits fails the fence.
CLAUDE.md and the backend README now name what an AST cannot see; the route-commit tests no longer
claim their read-back holds the commit.
This commit is contained in:
2026-10-20 01:56:31 +02:00
parent c5f121139b
commit 6ea750a698
6 changed files with 59 additions and 21 deletions
+21
View File
@@ -636,6 +636,27 @@ def test_every_unit_package_exists():
assert (APP / entry.split(":")[0]).exists(), entry
def test_every_listed_commit_is_still_there():
"""An entry names a commit that exists: one left behind by a rename, or by a function that no
longer commits, would go on allowing a commit to whatever takes its name next."""
stale = []
for commits in (*UNIT_COMMITS.values(), CORE_COMMITS):
for entry in commits:
rel, _, name = entry.partition(":")
tree = ast.parse((APP / rel).read_text(encoding="utf-8"))
functions = _enclosing_functions(tree)
committing = {
functions.get(node)
for node in ast.walk(tree)
if isinstance(node, ast.Call)
and isinstance(node.func, ast.Attribute)
and node.func.attr == "commit"
}
if (name not in committing) if name else not committing:
stale.append(entry)
assert stale == []
PACKAGE_CASES = {
# (module path, source): violations
("downloads/x.py", "from app.models import Video"): 0, # capture reads catalog