|
1 |
| -from collections.abc import AsyncGenerator |
| 1 | +from collections.abc import AsyncGenerator, Generator |
2 | 2 | from unittest.mock import AsyncMock
|
3 | 3 |
|
4 | 4 | import pytest
|
5 | 5 | import pytest_asyncio
|
6 | 6 | from fastapi import FastAPI
|
7 | 7 | from httpx import ASGITransport, AsyncClient
|
8 |
| -from sqlalchemy.ext.asyncio import AsyncEngine |
9 |
| -from sqlalchemy.orm import sessionmaker |
10 |
| -from sqlmodel import SQLModel, create_engine |
| 8 | +from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine |
| 9 | +from sqlmodel import SQLModel |
11 | 10 | from sqlmodel.ext.asyncio.session import AsyncSession
|
12 | 11 |
|
13 | 12 | from app.main import app as fastapi_app
|
|
21 | 20 | # Isso garante que os testes são isolados e usam o banco de dados em memória.
|
22 | 21 | TEST_DATABASE_URL = "sqlite+aiosqlite:///:memory:"
|
23 | 22 |
|
24 |
| -test_engine: AsyncEngine = AsyncEngine( |
25 |
| - create_engine(TEST_DATABASE_URL, echo=False, future=True) |
26 |
| -) |
| 23 | +test_engine = create_async_engine(TEST_DATABASE_URL, echo=False, future=True) |
27 | 24 |
|
28 | 25 | # Fábrica de sessões para os testes
|
29 |
| -TestSessionLocal = sessionmaker( |
| 26 | +TestSessionLocal = async_sessionmaker( |
30 | 27 | test_engine, class_=AsyncSession, expire_on_commit=False
|
31 | 28 | )
|
32 | 29 |
|
@@ -54,7 +51,7 @@ async def session() -> AsyncGenerator[AsyncSession, None]:
|
54 | 51 |
|
55 | 52 |
|
56 | 53 | @pytest.fixture
|
57 |
| -def test_app() -> FastAPI: |
| 54 | +def test_app() -> Generator[FastAPI]: |
58 | 55 | # Create a mock schema checker
|
59 | 56 | mock_schema_checker = AsyncMock()
|
60 | 57 | mock_schema_checker.validate = AsyncMock(return_value=None)
|
|
0 commit comments