Repository navigation
Docs harness follow-ups from the #777 panel, Round 3: per-line shows: guard (F43) and nine Minors #783
Description
Problem
The review panel's Round 3 on the docs-rewrite PR (#777) ended at HUMAN DECISION with one Important test-hardening item and nine Minors left after the two fix rounds the process allows. F42 and F44 are fixed in a short PR before the merge; the rest is here. Report: #777 (the comment starting "## Verdict: HUMAN DECISION · Round 3").
Important
F43 · tests/test_docs_output.py:103-124,188 · the shows: guard still passes ferro migrate body lines, check refusals and ferro.sql records; its self-test matches per block, not per line. FERRO_OUTPUT does not match ok 0001_create_author applied …, ok Wrote migrations/…, recorded … as baseline, default · sqlite:///./app.db (2 pending), a step row, pending 0002_x, any ferro migrate check line, the squash note, or a DEBUG:ferro.sql:… record. test_the_recogniser_matches_every_block_of_ferro_output uses FERRO_OUTPUT.search(block.body) over the whole block, so each output: block passes on its header alone. CLI_LINE in tests/test_docs_migrations.py knows these lines but runs only over OUTPUT_PAGES. Fix: a per-line self-test (every non-blank line of every output:/refusal:/message prints: block must match), fold CLI_LINE's alternatives into the one recogniser, add the %(levelname)s:%(name)s: logging prefix, and a floor on the collected block counts so an empty list cannot pass (F48).
Minor
- F45
docs/examples/_preludes/label_addition.py:38: the prelude fails on a second run against one schema (CREATE TYPE "plan"with no guard); drop the table and type before and after, or document that it needs an empty schema. - F47
docs/solutions/patterns/docs-page-conventions.md:199-216: the compile-only rule is stated twice with different lists; state it once. - F49
tests/test_docs_cli_reference.py:62: a flag counts as listed if it appears anywhere in the verb's section; read the option table only. - F50
tests/_docs_harness.py:51: unused re-exports ofSnippetRegionandredirected_url; two import paths forsnippet_regions/point_connect_at. - F51 conventions page:
related_filesomitstests/_docs_shared.py; theshows:paragraph still lists five kinds and a page-keyedVARIES; the step-file example names a file the Deploying chain no longer has. - F52
tests/test_docs_output.py:58: aprints:note is resolved in three places;check_printed(database_url=)makes callers pass the URL twice; the three new preludes have threeopened()contracts while the runner docstring describes one. - F53
docs/examples/_preludes/label_addition.py:23: the prelude hand-types "what the create pass sends"; build it withconnect(auto_migrate=True)on thefree-only model so it stays true by construction. - Coherence seam
tests/_docs_harness.py:251: the include regex's name class differs fromSNIPPET's; an include with a digit in its region name is silently unread. - From Round 2, left as declared: F38 (two regex fence readers remain), F39 (
docs/examplespath rebuilt in eight modules), F40 (run_pythonlackscheck=False), F41 (callers re-matchPRINTS).
Related
- Docs rewrite: every snippet runs, every fact matches the code, and the API reference renders cleanly #698, PR docs: the docs rewrite — every page one kind, every block runs, the SQL beside every query (#698) #777 (all three panel reports), Docs follow-ups from the #777 panel: run the Postgres-only blocks (F25), issue numbers in error messages, refused models stay registered #781 (Postgres-only blocks, issue numbers in messages, refused models stay registered), Docs: captured SQL beside the queries on the remaining pages (pagination, soft-deletes, timestamps, transactions, connections, quickstart, RLS, upgrading) #778 (captured SQL on the remaining pages).
Activity