30 lines
599 B
Python
30 lines
599 B
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
from fastapi.testclient import TestClient
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.db import SessionLocal, configure_database
|
|
from app.main import create_app
|
|
|
|
|
|
@pytest.fixture
|
|
def client(tmp_path: Path):
|
|
test_db_path = tmp_path / "test.db"
|
|
database_url = f"sqlite:///{test_db_path}"
|
|
|
|
configure_database(database_url)
|
|
app = create_app()
|
|
|
|
with TestClient(app) as test_client:
|
|
yield test_client
|
|
|
|
|
|
@pytest.fixture
|
|
def db_session(client) -> Session:
|
|
db = SessionLocal()
|
|
try:
|
|
yield db
|
|
finally:
|
|
db.close()
|