37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
from pathlib import Path
|
|
|
|
|
|
def _load_module(path: Path): # noqa: ANN202
|
|
spec = importlib.util.spec_from_file_location(path.stem, path)
|
|
assert spec is not None
|
|
assert spec.loader is not None
|
|
module = importlib.util.module_from_spec(spec)
|
|
spec.loader.exec_module(module)
|
|
return module
|
|
|
|
|
|
def test_revision_chain_is_correct() -> None:
|
|
base = Path(__file__).resolve().parents[1] / "alembic" / "versions"
|
|
rev1 = _load_module(base / "0001_ensure_sync_schema.py")
|
|
rev2 = _load_module(base / "0002_extend_origin_enum_for_iaai.py")
|
|
rev3 = _load_module(base / "0003_create_iaai_source_tables.py")
|
|
|
|
assert rev1.revision == "0001_ensure_sync_schema"
|
|
assert rev1.down_revision is None
|
|
assert rev2.revision == "0002_extend_origin_enum_for_iaai"
|
|
assert rev2.down_revision == "0001_ensure_sync_schema"
|
|
assert rev3.revision == "0003_create_iaai_source_tables"
|
|
assert rev3.down_revision == "0002_extend_origin_enum_for_iaai"
|
|
|
|
|
|
def test_enum_migration_contains_required_values() -> None:
|
|
migration = (
|
|
Path(__file__).resolve().parents[1] / "alembic" / "versions" / "0002_extend_origin_enum_for_iaai.py"
|
|
).read_text(encoding="utf-8")
|
|
assert "originenum" in migration
|
|
assert "IAAI" in migration
|
|
assert "ADD VALUE IF NOT EXISTS" in migration
|