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