dishcrud test
This commit is contained in:
@@ -3,9 +3,11 @@ from uuid import UUID
|
||||
import pytest
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from fastfood.cruds.dish import DishCrud
|
||||
from fastfood.cruds.menu import MenuCrud
|
||||
from fastfood.cruds.submenu import SubMenuCrud
|
||||
from fastfood.models import Menu, SubMenu
|
||||
from fastfood.models import Dish, Menu, SubMenu
|
||||
from fastfood.schemas import DishBase as dishschema
|
||||
from fastfood.schemas import Menu as menuschema
|
||||
from fastfood.schemas import MenuBase as menubaseschema
|
||||
|
||||
@@ -48,7 +50,7 @@ async def test_menu(asession: AsyncSession) -> None:
|
||||
async def test_submenu(asession: AsyncSession) -> None:
|
||||
async with asession:
|
||||
# Создаем меню напрямую
|
||||
menu = Menu(title="SomeMenu", description="SomeDescription")
|
||||
menu: Menu = Menu(title="SomeMenu", description="SomeDescription")
|
||||
asession.add(menu)
|
||||
await asession.commit()
|
||||
await asession.refresh(menu)
|
||||
@@ -74,6 +76,7 @@ async def test_submenu(asession: AsyncSession) -> None:
|
||||
asession,
|
||||
)
|
||||
assert submenu == req_submenu
|
||||
assert submenu.dishes_count == 0
|
||||
|
||||
# Обновляем меню
|
||||
submenu.title = "UpdatedSubmenu"
|
||||
@@ -96,9 +99,81 @@ async def test_submenu(asession: AsyncSession) -> None:
|
||||
await MenuCrud.delete_menu_item(menu_id, asession)
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
@pytest.mark.asyncio
|
||||
async def test_dish(asession: AsyncSession):
|
||||
"""Not Implemented yet"""
|
||||
async with asession:
|
||||
pass
|
||||
# Создаем меню напрямую
|
||||
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,
|
||||
)
|
||||
asession.add(submenu)
|
||||
await asession.commit()
|
||||
await asession.refresh(submenu)
|
||||
submenu_id = submenu.id
|
||||
|
||||
# Создаем блюдо
|
||||
dish: Dish = Dish(
|
||||
title="dish1",
|
||||
description="dish number 1",
|
||||
price="12.5",
|
||||
parent_submenu=submenu_id,
|
||||
)
|
||||
dish = await DishCrud.create_dish_item(
|
||||
submenu_id,
|
||||
dishschema.model_validate(dish),
|
||||
asession,
|
||||
)
|
||||
dish_id = dish.id
|
||||
|
||||
# Проверяем блюдо
|
||||
req_dish = await DishCrud.get_dish_item(
|
||||
dish_id,
|
||||
asession,
|
||||
)
|
||||
assert dish == req_dish
|
||||
|
||||
menu = await MenuCrud.get_menu_item(menu_id, asession)
|
||||
submenu = await SubMenuCrud.get_submenu_item(
|
||||
menu_id,
|
||||
submenu.id,
|
||||
asession,
|
||||
)
|
||||
|
||||
assert menu.submenus_count == 1
|
||||
assert menu.dishes_count == 1
|
||||
assert submenu.dishes_count == 1
|
||||
|
||||
# Обновляем блюдо
|
||||
dish.price = 177
|
||||
req_dish = await DishCrud.update_dish_item(
|
||||
dish_id,
|
||||
dishschema.model_validate(dish),
|
||||
asession,
|
||||
)
|
||||
assert dish == req_dish
|
||||
|
||||
# Удаляем длюдо
|
||||
await DishCrud.delete_dish_item(dish_id, asession)
|
||||
|
||||
menu = await MenuCrud.get_menu_item(menu_id, asession)
|
||||
submenu = await SubMenuCrud.get_submenu_item(
|
||||
menu_id,
|
||||
submenu.id,
|
||||
asession,
|
||||
)
|
||||
|
||||
assert menu.dishes_count == 0
|
||||
assert submenu.dishes_count == 0
|
||||
|
||||
await SubMenuCrud.delete_submenu_item(submenu_id, asession)
|
||||
await MenuCrud.delete_menu_item(menu_id, asession)
|
||||
|
Reference in New Issue
Block a user