test(issue-42): review R2 - a passthrough code must be in the exit table
raised == passthrough forced the declaration, but nothing checked the declared code against the table: dropping create's exit 4 from both the table and the data still passed. Assert passthrough <= table codes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e6a46cd7c4
commit
8d26106195
1 file changed
+2
@@ -152,6 +152,8 @@ def test_exit_table_agrees_with_script(script):
|
|||||||
raised = _scan_exits(script)[1]
|
raised = _scan_exits(script)[1]
|
||||||
assert {c: f"{script}:{n}" for c, n in raised.items()} == passthrough, \
|
assert {c: f"{script}:{n}" for c, n in raised.items()} == passthrough, \
|
||||||
f"{script}: SystemExit codes in heredocs {raised} must be declared as passthrough (and in the table)"
|
f"{script}: SystemExit codes in heredocs {raised} must be declared as passthrough (and in the table)"
|
||||||
|
assert set(passthrough) <= numeric, \
|
||||||
|
f"{script}: passthrough codes {sorted(set(passthrough) - numeric)} missing from the exit table"
|
||||||
assert numeric <= literal | set(passthrough), \
|
assert numeric <= literal | set(passthrough), \
|
||||||
f"table codes {sorted(numeric - literal - set(passthrough))} come from nowhere in {script}"
|
f"table codes {sorted(numeric - literal - set(passthrough))} come from nowhere in {script}"
|
||||||
for code, ref in passthrough.items():
|
for code, ref in passthrough.items():
|
||||||
|
|||||||
Reference in new issue
Block a user