test: docs contract merged-stream test pins its own ON FAILURE line (#146)
The comparison against render_failure_hint() alone passed unchanged if the
record lost its exit-1 cause, since both sides fell back to the same see: line.
CHANGES prose for 8d5fc6e corrected: three mismatches plus one #142 correction.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
Files changed:
- CHANGES.md
- VERSION
- tools/chemenu/tests/test_cli.py
This commit is contained in:
1 parent
8d5fc6e941
commit
8f61209b6b
3 files changed
+33
-16
No files matched your search
+27
-15
@@ -59,7 +59,7 @@ concern - readable here, never shipped as something to parse.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 7.1.0-beta.25 - 2026-09-26 - Command records: three more mismatches from #142 aligned to code
|
## 7.1.0-beta.26 - 2026-09-26 - docs contract: the merged-stream test pins its own ON FAILURE line
|
||||||
|
|
||||||
**Author:** Torben Nehmer
|
**Author:** Torben Nehmer
|
||||||
|
|
||||||
@@ -94,6 +94,7 @@ concern - readable here, never shipped as something to parse.
|
|||||||
- network: property defined; sync, publish and upstream merge marked networked
|
- network: property defined; sync, publish and upstream merge marked networked
|
||||||
- log append: unreadable --body-file is an ERROR line, not a traceback
|
- log append: unreadable --body-file is an ERROR line, not a traceback
|
||||||
- Command records: three more mismatches from #142 aligned to code
|
- Command records: three more mismatches from #142 aligned to code
|
||||||
|
- docs contract: the merged-stream test pins its own ON FAILURE line
|
||||||
<!-- /wikitool:bumps -->
|
<!-- /wikitool:bumps -->
|
||||||
|
|
||||||
### CalDAV task-tracker provider (Nextcloud Tasks, iOS Reminders); review reports unknown-value findings instead of skipping them
|
### CalDAV task-tracker provider (Nextcloud Tasks, iOS Reminders); review reports unknown-value findings instead of skipping them
|
||||||
@@ -392,20 +393,31 @@ record's cause now names the cases ("missing, not a readable file, or not valid
|
|||||||
|
|
||||||
### Command records: three more mismatches from #142 aligned to code
|
### Command records: three more mismatches from #142 aligned to code
|
||||||
|
|
||||||
Four more text-vs-code disagreements from #142's collection issue (Gitea #146), decided in the
|
Three more text-vs-code disagreements from #142's collection issue (Gitea #146), plus a
|
||||||
code's favour and fixed in the text - no behaviour change. `lint`'s quote-limit cap counts
|
correction of one of #142's own text fixes - all decided in the code's favour and fixed in the
|
||||||
blockquotes, not lines, since #22 changed the unit; `kb/CONTRACT.md`'s Quotation cap section had
|
text, no behaviour change. `lint`'s quote-limit cap counts blockquotes, not lines, since #22
|
||||||
kept the old wording and now names the same unit, with the rule that a fenced code block is
|
changed the unit; `kb/CONTRACT.md`'s Quotation cap section had kept the old wording and now
|
||||||
masked out first. `docs contract`'s record carried no exit-1 cause at all although
|
names the same unit, with code masked out first. `docs contract`'s record carried no exit-1
|
||||||
`contract_command` fails when `tools/CONTRACT.md` is missing - the case #143's own follow-up
|
cause at all although `contract_command` fails when `tools/CONTRACT.md` is missing, so it now
|
||||||
flagged - so it now names that cause; the merged-stream test that used to exercise the `see:`
|
names that cause; the merged-stream test that used to exercise the `see:` fallback through this
|
||||||
fallback through this very gap is updated to check the new hint instead, and the fallback itself
|
very gap now pins the command's own ON FAILURE line literally, and the fallback itself stays
|
||||||
stays covered by its own fixture-based test. `xref add`'s `atomic` property still described the
|
covered by its own fixture-based test. `xref add`'s `atomic` property still described a two-write
|
||||||
two-write shape from before the edge became one-sided, though the code and its own NOTES have
|
shape, though the code and the record's own NOTES say an edge is written into A only and B is
|
||||||
long said a source-page edge only ever writes A; it now says so. `publish`'s `atomic` property,
|
never touched; it now says so. `publish`'s `atomic` property, tightened earlier in this
|
||||||
tightened once already in this candidate to "every gate runs before staging", still missed the
|
candidate to "every gate runs before staging", still missed the one case that breaks it: on the
|
||||||
one case that breaks it: the rebase-review gate can exit 42 on the single retry of a rejected
|
single retry of a rejected push, the rebase-review gate can exit 42 after the local commit
|
||||||
push, which happens after the commit already landed.
|
exists - nothing is pushed, and the `--confirm-rebase` re-run pushes that commit.
|
||||||
|
|
||||||
|
The five other text fixes #142 made in the code's direction were checked against the code and
|
||||||
|
stand as they are.
|
||||||
|
|
||||||
|
### docs contract: the merged-stream test pins its own ON FAILURE line
|
||||||
|
|
||||||
|
The previous change's test compared `docs contract`'s output only against
|
||||||
|
`render_failure_hint()` of the same record - which would still pass if the record lost its
|
||||||
|
exit-1 cause again, because both sides would then fall back to the same `see:` line. It now also
|
||||||
|
pins the `ON FAILURE (wikitool docs contract -h):` header and the missing-file cause literally;
|
||||||
|
removing the cause from the record fails it.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -367,5 +367,10 @@ def test_stderr_hint_follows_the_error_line_when_streams_are_merged(tmp_path):
|
|||||||
assert result.returncode == 1
|
assert result.returncode == 1
|
||||||
lines = result.stdout.splitlines()
|
lines = result.stdout.splitlines()
|
||||||
assert lines[0] == "ERROR tools/CONTRACT.md is missing."
|
assert lines[0] == "ERROR tools/CONTRACT.md is missing."
|
||||||
|
# Pinned literally, not only against `render_failure_hint`: that comparison
|
||||||
|
# alone would pass unchanged if the record lost its cause again, since both
|
||||||
|
# sides would then fall back to the same `see:` line.
|
||||||
|
assert lines[1] == "ON FAILURE (wikitool docs contract -h):"
|
||||||
|
assert lines[2].startswith(" `tools/CONTRACT.md` is missing -> Not transient - restore the file")
|
||||||
hint = cli_contract.render_failure_hint(cli_contract.get("docs contract"))
|
hint = cli_contract.render_failure_hint(cli_contract.get("docs contract"))
|
||||||
assert "\n".join(lines[1:]) == hint
|
assert "\n".join(lines[1:]) == hint
|
||||||
Reference in new issue
Block a user