Extend action recovery reconciliation

This commit is contained in:
2026-08-03 06:37:45 +02:00
parent 79d00b84e3
commit b962f6756e
5 changed files with 198 additions and 45 deletions
+24
View File
@@ -181,6 +181,14 @@ class AutomationContractTests(unittest.TestCase):
self.assertTrue(preview.allowed)
self.assertEqual("compensatable", preview.reversibility)
self.assertEqual("forward_recovery", provider.action.recovery_mode)
self.assertEqual(
(
"verify the provider result and every announced effect "
"before continuation",
),
provider.action.recovery_verification,
)
self.assertEqual("completed", result.state)
self.assertEqual(
"postbox-message:1",
@@ -234,6 +242,22 @@ class AutomationContractTests(unittest.TestCase):
description="Test effect",
contract_version="2",
)
with self.assertRaisesRegex(ValueError, "recovery verification"):
ActionDefinition(
action_key="invalid.recovery",
owner_module="test",
description="Invalid recovery declaration",
input_schema_ref="schema:invalid.recovery@1",
recovery_verification=(),
)
with self.assertRaisesRegex(ValueError, "recovery mode"):
ActionDefinition(
action_key="invalid.recovery-mode",
owner_module="test",
description="Invalid recovery mode",
input_schema_ref="schema:invalid.recovery-mode@1",
recovery_mode="best_effort", # type: ignore[arg-type]
)
if __name__ == "__main__":