Files
2026-06-15 14:22:07 +08:00

44 lines
1.3 KiB
Python

"""Tests for repository layer."""
from unittest.mock import AsyncMock, MagicMock
import pytest
class TestUserRepository:
"""Tests for user repository functions."""
@pytest.fixture
def mock_session(self):
"""Create a mock async session."""
session = MagicMock()
session.execute = AsyncMock()
return session
@pytest.mark.anyio
async def test_get_by_email(self, mock_session):
"""Test get_by_email returns user."""
from app.repositories import user as user_repo
mock_user = MagicMock()
mock_result = MagicMock()
mock_result.scalar_one_or_none.return_value = mock_user
mock_session.execute.return_value = mock_result
result = await user_repo.get_by_email(mock_session, "test@example.com")
assert result == mock_user
@pytest.mark.anyio
async def test_get_by_email_not_found(self, mock_session):
"""Test get_by_email returns None when not found."""
from app.repositories import user as user_repo
mock_result = MagicMock()
mock_result.scalar_one_or_none.return_value = None
mock_session.execute.return_value = mock_result
result = await user_repo.get_by_email(mock_session, "notfound@example.com")
assert result is None