import sqlite3 from pathlib import Path from alembic import command from alembic.config import Config def test_alembic_upgrade_creates_core_tables(tmp_path: Path) -> None: database_path = tmp_path / "migration.db" database_url = f"sqlite+aiosqlite:///{database_path}" alembic_config = Config("alembic.ini") alembic_config.set_main_option("sqlalchemy.url", database_url) command.upgrade(alembic_config, "head") with sqlite3.connect(database_path) as connection: cursor = connection.execute("SELECT name FROM sqlite_master WHERE type = 'table'") table_names = {row[0] for row in cursor.fetchall()} assert "users" in table_names assert "directories" in table_names assert "auth_sessions" in table_names assert "placement_policies" in table_names assert "upload_sessions" in table_names assert "blob_replicas" in table_names assert "alembic_version" in table_names