feat: add institutional governance and recovery contracts
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user