Files
bracket/backend/tests/integration_tests/sql.py
2022-12-11 17:55:11 +01:00

21 lines
722 B
Python

from contextlib import asynccontextmanager
from typing import AsyncIterator
from ladderz.database import database
from ladderz.models.db.user import User, UserInDB
from ladderz.schema import users
from ladderz.utils.db import fetch_one_parsed
@asynccontextmanager
async def inserted_user(user: User) -> AsyncIterator[UserInDB]:
last_record_id = await database.execute(query=users.insert(), values=user.dict())
user_inserted = await fetch_one_parsed(
database, UserInDB, users.select().where(users.c.id == last_record_id)
)
assert user_inserted is not None
try:
yield user_inserted
finally:
await database.execute(query=users.delete().where(users.c.id == last_record_id))