sbom-nexus/tests/test_migrations.py
tegwick ba535e1f8f feat: prepare postgres sbom cutover
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a028f0-a42f-7582-89a8-ebaad7343834
2026-08-22 13:14:24 +02:00

38 lines
1.1 KiB
Python

from __future__ import annotations
from pathlib import Path
from alembic import command
from alembic.config import Config
from sqlalchemy import create_engine, inspect
def migration_config(database_path: Path) -> Config:
config = Config("alembic.ini")
config.set_main_option("sqlalchemy.url", f"sqlite:///{database_path}")
return config
def test_initial_migration_upgrades_and_downgrades(tmp_path: Path) -> None:
database_path = tmp_path / "migrated.db"
config = migration_config(database_path)
command.upgrade(config, "head")
engine = create_engine(f"sqlite:///{database_path}")
assert set(inspect(engine).get_table_names()) == {
"alembic_version",
"entries",
"repositories",
"snapshots",
}
assert {index["name"] for index in inspect(engine).get_indexes("entries")} == {
"ix_entries_license",
"ix_entries_repo",
"ix_entries_snapshot",
}
command.check(config)
command.downgrade(config, "base")
assert set(inspect(engine).get_table_names()) == {"alembic_version"}