refactor: migrate to keyword-based repository config, add nested transactions and tests

This commit is contained in:
2026-08-14 19:58:32 +03:00
parent 3d85c2b5dd
commit 7abb513b30
22 changed files with 658 additions and 324 deletions

View File

@@ -3,7 +3,7 @@ from collections.abc import AsyncGenerator
import pytest
import pytest_asyncio
from metaorm import DatabaseSettings, RepositoriesContainer
from metaorm import RepositoriesContainer, RepositorySettings
from .models import (
AuthorRepository,
@@ -14,8 +14,8 @@ from .models import (
@pytest.fixture
def database_settings() -> DatabaseSettings:
return DatabaseSettings(
def database_settings() -> RepositorySettings:
return RepositorySettings(
dsn="sqlite+aiosqlite:///:memory:",
pool_size=1,
pool_recycle=60,
@@ -25,7 +25,7 @@ def database_settings() -> DatabaseSettings:
@pytest_asyncio.fixture
async def repositories_container(
database_settings: DatabaseSettings,
database_settings: RepositorySettings,
) -> AsyncGenerator[RepositoriesContainer, None]:
container = RepositoriesContainer(settings=database_settings)
yield container
@@ -43,7 +43,7 @@ async def user_repository(
@pytest_asyncio.fixture
async def product_repository_settings(
database_settings: DatabaseSettings,
database_settings: RepositorySettings,
) -> AsyncGenerator[ProductRepository, None]:
repository = ProductRepository(settings=database_settings)
await repository.create_tables()