- Asyncpg для асинхронных запросов к базе данных.
- SQLModel как обёртку поверх SQLAlchemy и Pydantic.
- Alembic для миграций.
- Celery beat для периодических задач.
- Пакетный менеджер Poetry.
- Реализовать вывод количества подменю и блюд для Меню через один (сложный) ORM запрос:
- app.menu.repository | line 59
- Реализовать тестовый сценарий «Проверка кол-ва блюд и подменю в меню» из Postman с помощью pytest:
- app.menu.tests.test_routes | line 83
- app.submenu.tests.test_routes | line 94
- Описать API эндпоинты в соответствий c OpenAPI.
- Добавил название, описание и теги для каждого эндпоинта.
- Реализовать в тестах аналог Django reverse() для FastAPI
- Добавил каждому эндпоинту название и затем использовал его в router.url_path_for методе
- Для прохождения Postman тестов необходимо закоментировать Celery задачу синхронизирующую бд с Excel файлом:
- app.celery | line 14
- Эндпоинт для получения всех меню со всеми связанными подменю и блюдами:
- api/v1/data-processing/all/
- Сервисы синхронизации Excel файла с базой данных находятся в следующих дирректориях:
- app.data_processing.dependencies.admin
- app.data_processing.services.admin_service
- app.data_processing.services.admin_update_services
Для тестового запуска, переменные из .env.dist менять не нужно, просто переименуйте файл в .env
Контейнер запускается, выполняет тесты и завершает свою работу. Для повторного запуска тестов необходимо перезапустить контейнер.
Для того, что бы не дублировать compose файлы, команда выше использует перезапись. Первый compose файл перезаписываеться вторым.