Тестирование проекта
Footgram

Концепция тестирования
Дипломный проект по обучению Яндекс-практикум направлен на проверку знаний по курсу и не подразумевает тестирование проекта. Проверяется ревьюверами в ручную, так как может иметь различную реализацию.


Для отработки практики предлагаю покрыть проект тестами и заодно попрактиковаться в их написании

Первыми тестами будет покрыты модели данных. Писать тесты будем ориентируясь на описание технического задания и продумывание структуры кода.
краткое описание проекта
Описание проекта Foodgram

Приложение, на котором пользователи публикуют рецепты, подписываться на публикации других авторов и добавлять рецепты в избранное. Сервис позволяет пользователю создавать список продуктов, которые нужно купить для приготовления выбранных блюд.

Технологии:

  • Python 3.9
  • Django 3.2
  • Django REST framework 3.12
  • Nginx
  • Docker
  • Postgres
Описание структуры моделей проекта
Проект поделен на два подпроекты:

api - в данной подпроекте описаны сериализаторы, url-адреса (доступные по api), контроллеры, фильтры и т. д.

recipes - в подпроекте описаны модели данных рецептов, ингредиентов, теги, подписки, корзины, избранное

users - в подпроекте описаны модели разграничения доступа сайта
Рекомендации по структуре тестов
  • Файлы с тестами хранятся в папке tests внутри приложения;

  • Тесты моделей, контроллеров и форм лежат в файлах test_models.py, test_views.py и test_forms.py;

  • Название тестового метода начинается с префикса test_ (например, test_get_sum или test_status_code);

  • Название класса, содержащего тесты, имеет вид: ТестируемаяСущностьTests (например, TrialTests или FeedbackFileTests).
Тестирование
Описаны основные тесты моделей проекта foodgram