21 lines
781 B
Python
21 lines
781 B
Python
import pytest
|
|
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
|
|
|
|
from app.database.models import Base
|
|
from app.database.repositories import PromptRepository
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_prompt_versions_can_roll_back() -> None:
|
|
engine = create_async_engine("sqlite+aiosqlite:///:memory:")
|
|
async with engine.begin() as connection:
|
|
await connection.run_sync(Base.metadata.create_all)
|
|
factory = async_sessionmaker(engine, expire_on_commit=False)
|
|
async with factory() as session:
|
|
repo = PromptRepository(session)
|
|
await repo.set("first", 1)
|
|
await repo.set("second", 1)
|
|
assert (await repo.active()).text == "second"
|
|
assert (await repo.rollback()).text == "first"
|
|
await engine.dispose()
|