Release v0.1.6
This commit is contained in:
@@ -6,6 +6,7 @@ from pathlib import Path
|
||||
|
||||
from alembic import command
|
||||
from alembic.runtime.migration import MigrationContext
|
||||
from alembic.script import ScriptDirectory
|
||||
from sqlalchemy import create_engine, inspect, text
|
||||
|
||||
from govoplan_core.db.base import Base
|
||||
@@ -18,6 +19,14 @@ from govoplan_core.db.migrations import (
|
||||
)
|
||||
|
||||
|
||||
def configured_migration_heads(database_url: str) -> set[str]:
|
||||
return set(ScriptDirectory.from_config(alembic_config(database_url=database_url)).get_heads())
|
||||
|
||||
|
||||
def database_migration_heads(connection) -> set[str]:
|
||||
return set(MigrationContext.configure(connection).get_current_heads())
|
||||
|
||||
|
||||
class DatabaseMigrationTests(unittest.TestCase):
|
||||
def test_repairs_create_all_schema_drift_and_upgrades_to_head(self) -> None:
|
||||
with tempfile.TemporaryDirectory(prefix="msm-migration-test-") as directory:
|
||||
@@ -52,7 +61,7 @@ class DatabaseMigrationTests(unittest.TestCase):
|
||||
engine = create_engine(url)
|
||||
try:
|
||||
with engine.connect() as connection:
|
||||
current = MigrationContext.configure(connection).get_current_revision()
|
||||
current = database_migration_heads(connection)
|
||||
inspector = inspect(connection)
|
||||
columns = {
|
||||
column["name"]
|
||||
@@ -93,7 +102,8 @@ class DatabaseMigrationTests(unittest.TestCase):
|
||||
WHERE role.slug = 'system_owner' AND account.is_active = 1
|
||||
"""
|
||||
)).scalar_one()
|
||||
self.assertEqual(current, result.current_revision)
|
||||
self.assertEqual(current, configured_migration_heads(url))
|
||||
self.assertEqual(result.current_revision, ",".join(sorted(current)))
|
||||
self.assertIn("user_lock_state", columns)
|
||||
self.assertIn("user_locked_at", columns)
|
||||
self.assertIn("user_locked_by_user_id", columns)
|
||||
@@ -212,10 +222,9 @@ class DatabaseMigrationTests(unittest.TestCase):
|
||||
engine = create_engine(url)
|
||||
try:
|
||||
with engine.connect() as connection:
|
||||
self.assertEqual(
|
||||
MigrationContext.configure(connection).get_current_revision(),
|
||||
result.current_revision,
|
||||
)
|
||||
current = database_migration_heads(connection)
|
||||
self.assertEqual(current, configured_migration_heads(url))
|
||||
self.assertEqual(result.current_revision, ",".join(sorted(current)))
|
||||
profile_columns = {
|
||||
column["name"]
|
||||
for column in inspect(connection).get_columns("mail_server_profiles")
|
||||
|
||||
Reference in New Issue
Block a user