from contextlib import asynccontextmanager from pathlib import Path from tempfile import TemporaryDirectory import pytest from konabot.common.database import DatabaseManager from konabot.common.permsys.migrates import execute_migration, get_current_version @asynccontextmanager async def tempdb(): with TemporaryDirectory() as _tempdir: tempdir = Path(_tempdir) db = DatabaseManager(tempdir / "perm.sqlite3") yield db await db.close_all_connections() @pytest.mark.asyncio async def test_get_db_version(): async with tempdb() as db: async with db.get_conn() as conn: v = await get_current_version(conn) assert v == -1 v = await get_current_version(conn) assert v == 0 await execute_migration(conn, version=1) v = await get_current_version(conn) assert v == 1 await execute_migration(conn, version=0) v = await get_current_version(conn) assert v == 0