fix: harden DGR-017 contract continuity
This commit is contained in:
@@ -80,7 +80,7 @@ def snapshot_doc(snapshot):
|
||||
|
||||
@pytest.fixture
|
||||
def contract_doc(contract):
|
||||
return copy.deepcopy(dict(contract.raw))
|
||||
return contract.to_dict()
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
@@ -746,7 +746,7 @@ def test_the_contract_locks_the_roadmap_thresholds(contract):
|
||||
assert contract.threshold("performance", "quality_pass_with_speed_fail_verdict") == "stop"
|
||||
|
||||
assert contract.threshold("reliability", "synthetic_workers_satisfy_alpha") is False
|
||||
assert contract.threshold("storage", "forbidden_path_prefixes") == ["/home"]
|
||||
assert contract.threshold("storage", "forbidden_path_prefixes") == ("/home",)
|
||||
|
||||
|
||||
def test_the_contract_offers_only_alpha_or_stop(contract):
|
||||
@@ -820,17 +820,26 @@ def test_a_dropped_acceptance_section_is_rejected(contract_doc):
|
||||
parse_alpha_contract(contract_doc)
|
||||
|
||||
|
||||
def test_resealing_a_mutated_contract_changes_its_digest(contract, contract_doc):
|
||||
"""Tamper-evidence, not tamper-proofing: a rewrite is legal but never silent."""
|
||||
def test_resealing_a_mutated_v1_contract_is_rejected(contract, contract_doc):
|
||||
contract_doc["performance"]["min_median_decode_tokens_per_second"] = 0.05
|
||||
resealed = seal_contract(contract_doc)
|
||||
|
||||
# It parses — nothing in-repo can stop a determined rewrite of file plus digest.
|
||||
reparsed = parse_alpha_contract(resealed)
|
||||
with pytest.raises(AlphaContractError, match="trusted pre-execution digest"):
|
||||
parse_alpha_contract(resealed)
|
||||
assert resealed["contract_sha256"] != contract.digest
|
||||
|
||||
# But the digest moved, so the change is a visible diff on a file whose entire
|
||||
# purpose is to not change, and the contract_id still claims to be v1.
|
||||
assert reparsed.digest != contract.digest
|
||||
|
||||
def test_parsed_contract_nested_state_is_immutable(contract):
|
||||
with pytest.raises(TypeError):
|
||||
contract.raw["performance"]["min_median_decode_tokens_per_second"] = 0.05
|
||||
with pytest.raises(TypeError):
|
||||
contract.target["reasoning_effort"] = "high"
|
||||
|
||||
|
||||
def test_contract_to_dict_returns_an_isolated_mutable_copy(contract):
|
||||
copied = contract.to_dict()
|
||||
copied["performance"]["min_median_decode_tokens_per_second"] = 0.05
|
||||
assert contract.threshold("performance", "min_median_decode_tokens_per_second") == 0.5
|
||||
|
||||
|
||||
def test_an_unknown_threshold_cannot_be_invented_at_read_time(contract):
|
||||
|
||||
Reference in New Issue
Block a user