Coverage for app/tests/conftest.py: 100%
30 statements
« prev ^ index » next coverage.py v7.6.1, created at 2026-03-24 11:40 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2026-03-24 11:40 +0000
1from collections.abc import Generator
3import pytest
4from fastapi.testclient import TestClient
5from sqlmodel import Session, delete
7from app.core.config import settings
8from app.core.db import engine, init_db
9from app.main import app
10from app.models import Item, Priority, Task, User
11from app.tests.utils.user import authentication_token_from_email
12from app.tests.utils.utils import get_superuser_token_headers
15@pytest.fixture(scope="session", autouse=True)
16def db() -> Generator[Session, None, None]:
17 with Session(engine) as session:
18 init_db(session)
19 yield session
20 session.execute(delete(Task))
21 session.execute(delete(Item))
22 session.execute(delete(Priority))
23 session.execute(delete(User))
24 session.commit()
27@pytest.fixture(scope="module")
28def client() -> Generator[TestClient, None, None]:
29 with TestClient(app) as c:
30 yield c
33@pytest.fixture(scope="module")
34def superuser_token_headers(client: TestClient) -> dict[str, str]:
35 return get_superuser_token_headers(client)
38@pytest.fixture(scope="module")
39def normal_user_token_headers(client: TestClient, db: Session) -> dict[str, str]:
40 return authentication_token_from_email(
41 client=client, email=settings.EMAIL_TEST_USER, db=db
42 )