From d9cafebff322bc853b7d72384e3b3c61cd57255e Mon Sep 17 00:00:00 2001 From: Nicholas Dudfield Date: Thu, 16 Jul 2026 10:06:17 +0700 Subject: [PATCH] test(export): prove no-veto behavior directly --- .../export/export_no_veto_missing_observation.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.testnet/scenarios/export/export_no_veto_missing_observation.py b/.testnet/scenarios/export/export_no_veto_missing_observation.py index 2b1ca0afa..4ba5e3658 100644 --- a/.testnet/scenarios/export/export_no_veto_missing_observation.py +++ b/.testnet/scenarios/export/export_no_veto_missing_observation.py @@ -70,23 +70,17 @@ async def scenario(ctx, log): witness = await wait_for_export_signature_witness( ctx, log, origin_hash, after_ledger=final_seq ) - export_end = ctx.mark("export-no-veto-submit-end") signers = witness.get("_WitnessSigners", []) if len(signers) < 4: raise AssertionError(f"Expected at least 4 signers, got {len(signers)}") log(f"Export signer count: {len(signers)}") - no_veto_logs = ctx.assert_log( - r"Export: missing exportSigSetHash observation ignored", - since=export_start, - until=export_end, - ) - log(f"Export no-veto missing-observation logs: {no_veto_logs.count}") - + # The validated witness proves the missing observation did not veto the + # round. Pin the injected fault separately; the internal no-veto diagnostic + # may be flushed after witness observation and is not part of the contract. withhold_logs = ctx.assert_log( r"Export: withholding exportSigSetHash", since=export_start, - until=export_end, ) log(f"Export sidecar hash withholding logs: {withhold_logs.count}")