Dispose replaced migration database handles
This commit is contained in:
@@ -2040,6 +2040,25 @@ finally:
|
||||
self.assertEqual(["check", "verify"], [record["task_id"] for record in records])
|
||||
self.assertEqual(["warning", "warning"], [record["status"] for record in records])
|
||||
|
||||
def test_registered_module_migration_tasks_dispose_replaced_database(self) -> None:
|
||||
root = Path(tempfile.mkdtemp(prefix="govoplan-module-migration-dispose-", dir=_TEST_ROOT))
|
||||
previous = configure_database(f"sqlite:///{root / 'previous.db'}")
|
||||
previous_pool = previous.engine.pool
|
||||
manifest = ModuleManifest(id="taskmod", name="Task Module", version="1.0.0")
|
||||
|
||||
try:
|
||||
run_registered_module_migration_tasks(
|
||||
database_url=f"sqlite:///{root / 'target.db'}",
|
||||
enabled_modules=("taskmod",),
|
||||
phases=(),
|
||||
manifest_factories=(lambda: manifest,),
|
||||
)
|
||||
|
||||
self.assertIsNot(previous.engine.pool, previous_pool)
|
||||
self.assertEqual(f"sqlite:///{root / 'target.db'}", get_database().database_url)
|
||||
finally:
|
||||
reset_database(dispose=True)
|
||||
|
||||
def test_module_installer_preflight_blocks_provider_update_that_breaks_installed_consumer(self) -> None:
|
||||
available = {
|
||||
"files": ModuleManifest(
|
||||
|
||||
Reference in New Issue
Block a user