sync
This commit is contained in:
@@ -39,7 +39,7 @@ async def db_init():
|
||||
async with async_engine.begin() as conn:
|
||||
await conn.run_sync(Base.metadata.drop_all)
|
||||
|
||||
|
||||
|
||||
async def get_test_session() -> AsyncGenerator[AsyncSession, None]:
|
||||
async with async_session_maker() as session:
|
||||
yield session
|
||||
@@ -58,3 +58,9 @@ async def client(app):
|
||||
app=app, base_url="http://localhost:8000/api/v1/menus",
|
||||
) as async_client:
|
||||
yield async_client
|
||||
|
||||
|
||||
@pytest_asyncio.fixture(scope="session")
|
||||
async def asession() -> AsyncGenerator[AsyncSession, None]:
|
||||
async with async_session_maker() as session:
|
||||
yield session
|
||||
|
@@ -87,7 +87,8 @@ class TestBaseCrud:
|
||||
async def get(ac, menu, submenu, dish):
|
||||
"""Получение блюда по id"""
|
||||
response = await ac.get(
|
||||
f"/{menu.get('id')}/submenus/{submenu.get('id')}/dishes/{dish.get('id')}",
|
||||
f"/{menu.get('id')}/submenus/{submenu.get('id')}"
|
||||
f"/dishes/{dish.get('id')}",
|
||||
)
|
||||
return response.status_code, response.json()
|
||||
|
||||
@@ -104,7 +105,8 @@ class TestBaseCrud:
|
||||
async def update(ac, menu, submenu, dish):
|
||||
"""Обновление блюда по id"""
|
||||
response = await ac.patch(
|
||||
f"/{menu.get('id')}/submenus/{submenu.get('id')}/dishes/{dish.get('id')}",
|
||||
f"/{menu.get('id')}/submenus/{submenu.get('id')}"
|
||||
f"/dishes/{dish.get('id')}",
|
||||
json=dish,
|
||||
)
|
||||
return response.status_code, response.json()
|
||||
@@ -113,7 +115,8 @@ class TestBaseCrud:
|
||||
async def delete(ac, menu, submenu, dish):
|
||||
"""Удаление блюда по id"""
|
||||
response = await ac.delete(
|
||||
f"/{menu.get('id')}/submenus/{submenu.get('id')}/dishes/{dish.get('id')}"
|
||||
f"/{menu.get('id')}/submenus/{submenu.get('id')}"
|
||||
f"/dishes/{dish.get('id')}"
|
||||
)
|
||||
return response.status_code
|
||||
|
||||
@@ -369,7 +372,7 @@ class TestСontinuity:
|
||||
assert rspn["submenus_count"] == 0
|
||||
assert "dishes_count" in rspn.keys()
|
||||
assert rspn["dishes_count"] == 0
|
||||
|
||||
|
||||
# Удаляем меню
|
||||
code = await TestBaseCrud.Menu.delete(client, menu)
|
||||
assert code == 200
|
||||
|
56
tests/test_crud.py
Normal file
56
tests/test_crud.py
Normal file
@@ -0,0 +1,56 @@
|
||||
from uuid import UUID
|
||||
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from fastfood.cruds.submenu import SubMenuCrud
|
||||
from fastfood.models import Menu, SubMenu, Dish
|
||||
from fastfood.cruds.menu import MenuCrud
|
||||
from fastfood.schemas import Menu as menuschema
|
||||
from fastfood.schemas import SubMenuRead as submenuschema
|
||||
from fastfood.schemas import MenuBase as menubaseschema
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_menu(asession: AsyncSession) -> None:
|
||||
async with asession:
|
||||
menu: Menu = Menu(title="SomeMenu", description="SomeDescription")
|
||||
asession.add(menu)
|
||||
|
||||
await asession.commit()
|
||||
await asession.refresh(menu)
|
||||
menu_id: UUID = menu.id
|
||||
|
||||
req_menu: Menu | None = await MenuCrud.get_menu_item(menu_id, asession)
|
||||
assert menu == req_menu
|
||||
|
||||
req_menus = await MenuCrud.get_menus(asession)
|
||||
# assert menu == req_menus.first()
|
||||
|
||||
menu.title = "updatedMenu"
|
||||
await MenuCrud.update_menu_item(
|
||||
menu.id, menuschema.model_validate(menu), asession
|
||||
)
|
||||
req_menu = await MenuCrud.get_menu_item(menu_id, asession)
|
||||
assert menu == req_menu
|
||||
|
||||
await MenuCrud.delete_menu_item(menu_id, asession)
|
||||
req_menus = await MenuCrud.get_menus(asession)
|
||||
assert req_menus.all() == []
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_submenu(asession: AsyncSession) -> None:
|
||||
async with asession:
|
||||
menu: Menu = Menu(title="SomeMenu", description="SomeDescription")
|
||||
asession.add(menu)
|
||||
|
||||
await asession.commit()
|
||||
await asession.refresh(menu)
|
||||
menu_id: UUID = menu.id
|
||||
submenu: SubMenu = SubMenu(
|
||||
title="submenu", description="", parent_menu=menu_id,
|
||||
)
|
||||
submenu = await SubMenuCrud.create_submenu_item(
|
||||
menu_id, menubaseschema.model_validate(submenu), asession,
|
||||
)
|
||||
print(submenu)
|
Reference in New Issue
Block a user