Add setup and teardown database for tests (#626)

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
This commit is contained in:
Esteban Maya
2024-03-01 12:26:05 -05:00
committed by GitHub
parent d0c9a6831c
commit e6a6819c57

View File

@@ -2,19 +2,27 @@ from collections.abc import Generator
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from sqlmodel import Session from sqlmodel import Session, delete
from app.core.config import settings from app.core.config import settings
from app.db.engine import engine from app.db.engine import engine
from app.db.init_db import init_db
from app.main import app from app.main import app
from app.models import Item, User
from app.tests.utils.user import authentication_token_from_email from app.tests.utils.user import authentication_token_from_email
from app.tests.utils.utils import get_superuser_token_headers from app.tests.utils.utils import get_superuser_token_headers
@pytest.fixture(scope="session") @pytest.fixture(scope="session", autouse=True)
def db() -> Generator: def db() -> Generator:
with Session(engine) as session: with Session(engine) as session:
init_db(session)
yield session yield session
statement = delete(Item)
session.execute(statement)
statement = delete(User)
session.execute(statement)
session.commit()
@pytest.fixture(scope="module") @pytest.fixture(scope="module")