test: pin public settlement response and liability registration contracts

This commit is contained in:
2026-10-10 03:22:37 +00:00
parent 92f44661c3
commit 6fbe81a5d3
4 changed files with 142 additions and 4 deletions
+18
View File
@@ -104,6 +104,15 @@ def test_legacy_close_fields_are_scoped_separately_from_draft_finalize() -> None
assert not re.search(r"new.*(?:identical|same).*shape", draft, re.I)
def test_unregistered_liability_contract_separates_registration_from_unknown_debt() -> None:
interface = text("docs/interface-contract.md")
clause = interface.split("### Draft evidence public fields", 1)[1].split("## ", 1)[0]
assert re.search(r"unregistered_liabilities.*(?:no|not).*registered.*liabilit", clause, re.I | re.S)
assert re.search(r"not.*(?:unknown|real).*debt", clause, re.I | re.S)
assert re.search(r"not.*(?:proof.*debt.free|prove.*debt.free)", clause, re.I | re.S)
assert re.search(r"exclu.*(?:missing|completeness)|(?:missing|completeness).*exclu", clause, re.I | re.S)
def test_requirement_authority_scope_distinguishes_approved_drafts_and_automatic_selection() -> None:
req = REQ.read_text(encoding="utf-8")
constraints = req.split("## 6. 제약과 불변조건", 1)[1].split("## 7.", 1)[0]
@@ -117,3 +126,12 @@ def test_requirement_authority_scope_distinguishes_approved_drafts_and_automatic
assert re.search(r"unverified.*rejected.*unknown.*(?:any|all).*path", constraints, re.I | re.S), \
"unverified, rejected, or unknown amounts are never authority on any path"
assert "future_manual_asset" not in constraints
def test_legacy_metadata_field_lists_are_required_retained_fields_not_exhaustive_response_keys() -> None:
interface = text("docs/interface-contract.md")
legacy = interface.split("## D04 snapshot close output contract", 1)[1].split("## settlement-draft-service", 1)[0]
assert re.search(r"legacy direct close", legacy, re.I)
assert re.search(r"required top-level metadata fields", legacy, re.I)
assert re.search(r"not (?:an )?exhaustive", legacy, re.I)
assert "additive settlement-draft finalize response" in legacy