mirror of
https://github.com/furyhawk/agent_delta.git
synced 2026-07-21 10:15:36 +00:00
44 lines
1.3 KiB
Python
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
|