"""Tests for DI transaction manager. Tests SessionTransactionManager implementation. """ from unittest.mock import AsyncMock, MagicMock import pytest from sqlalchemy.ext.asyncio import AsyncSession from app.infrastructure.di.transaction_manager import SessionTransactionManager @pytest.fixture def mock_session() -> MagicMock: """Create mock async session.""" session = MagicMock(spec=AsyncSession) session.commit = AsyncMock() session.rollback = AsyncMock() return session @pytest.fixture def transaction_manager(mock_session: MagicMock) -> SessionTransactionManager: """Create transaction manager with mock session.""" return SessionTransactionManager(mock_session) class TestSessionTransactionManager: """Test suite for SessionTransactionManager.""" async def test_commit( self, transaction_manager: SessionTransactionManager, mock_session: MagicMock ) -> None: """Test commit calls session commit.""" await transaction_manager.commit() mock_session.commit.assert_called_once() async def test_rollback( self, transaction_manager: SessionTransactionManager, mock_session: MagicMock ) -> None: """Test rollback calls session rollback.""" await transaction_manager.rollback() mock_session.rollback.assert_called_once()