✅ Add setup and teardown database for tests (#626)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
This commit is contained in:
@@ -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")
|
||||||
|
Reference in New Issue
Block a user