/
nollieundergrob
/
PythonPackageStorage
Обзор
Документация
Войти
/
nollieundergrob
/
PythonPackageStorage
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
backend/src/tests/service/test_user.py
73 строки
2 KB
nollieundergrob
SPLIT
13 мар 2025, 23:11
13 мар 2025, 23:11
ad00f30
Код
Авторство
О чём код?
import asyncio import pytest from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine from sqlalchemy.orm import sessionmaker from schemas.user import UserCreate as User from service.user import UserService as code from data.base import Base from data.db_helper import DatabaseHelper db_helper = DatabaseHelper(url="sqlite+aiosqlite:///:memory:", echo=True) @pytest.fixture(scope="session") def event_loop(): policy = asyncio.get_event_loop_policy() loop = policy.new_event_loop() yield loop loop.close() @pytest.fixture(scope="session") async def engine(): engine = create_async_engine("sqlite+aiosqlite:///:memory:") async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) yield engine await engine.dispose() @pytest.fixture async def session(engine): async_session = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False) async with async_session() as session: yield session # test_user.py sample = User( name="Виктор", email="asdasd@vitya.ru", username="Vitagod", password="jojo240" ) @pytest.mark.asyncio async def test_create(session): resp = await code.create(session=session, user_in=sample) assert resp @pytest.mark.asyncio async def test_get_exists(session): created_user = await code.create(session=session, user_in=sample) resp = await code.get_detail(session=session, user_id=created_user.id) assert resp is not None @pytest.mark.asyncio async def test_get_missing(session): resp = await code.get_detail(session=session, user_id=999) assert resp is None @pytest.mark.asyncio async def test_success_put(session): # Создаем пользователя created_user = await code.create(session=session, user_in=sample) # Обновляем данные new_data = User( username="New_user", email=sample.email, name=sample.name, password=sample.password, ) # Выполняем замену updated_user = await code.replace( session=session, user_id=created_user.id, user_in=new_data ) assert updated_user.username == new_data.username