feat: add institutional governance and recovery contracts

This commit is contained in:
2026-08-01 17:46:54 +02:00
parent b65b48832b
commit 7192d32e65
61 changed files with 12539 additions and 168 deletions
+43
View File
@@ -0,0 +1,43 @@
from __future__ import annotations
import unittest
from unittest.mock import patch
from govoplan_core.commands.wait_for_database import main
class WaitForDatabaseTests(unittest.TestCase):
def test_waits_until_exact_configured_heads_are_visible(self) -> None:
with (
patch(
"govoplan_core.commands.wait_for_database.configured_migration_heads",
return_value=("head-a", "head-b"),
),
patch(
"govoplan_core.commands.wait_for_database.database_migration_heads",
side_effect=[("head-a",), ("head-a", "head-b")],
),
patch("govoplan_core.commands.wait_for_database.time.sleep"),
):
result = main(["--timeout-seconds", "1", "--poll-seconds", "0.01"])
self.assertEqual(0, result)
def test_returns_temporary_failure_when_heads_do_not_match(self) -> None:
with (
patch(
"govoplan_core.commands.wait_for_database.configured_migration_heads",
return_value=("head-b",),
),
patch(
"govoplan_core.commands.wait_for_database.database_migration_heads",
return_value=("head-a",),
),
):
result = main(["--timeout-seconds", "0"])
self.assertEqual(75, result)
if __name__ == "__main__":
unittest.main()