You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Сложность задачи: средняя (решается стандартно, но может потребовать усилий при отладке или тестировании)
Количество разработчиков для выполнения задачи: 1
Зачем?
Зачем выполняется реализация задачи и какую проблему она решает.
Необходимо реализовать фабрики для создания тестовых данных встреч (Meeting) и их связей с пользователями (AssociationUserMeeting). Эти сущности важны для тестирования функциональности, связанной с управлением встречами и их участниками.
Как нужно делать?
Как мы выполняем реализацию данной задачи, какие действия нужны для достижения цели.
Изучить модели и связи между моделями, необходимые для реализации функционала
Создать файлы в директории fake_data_factories:
meeting_factory.py для фабрики Meeting
association_user_meeting_factory.py для фабрики AssociationUserMeeting
Реализовать классы фабрик:
MeetingFactory:
Основные поля из Meeting:
title (уникальный в рамках проблемы)
description
problem_id (ForeignKey на Problem)
owner_id (ForeignKey на UserTabit)
date_meeting (дата встречи)
status (enum StatusMeeting)
place (место встречи)
transfer_counter (счетчик переносов даты)
created_at (автозаполнение)
updated_at (автозаполнение)
AssociationUserMeetingFactory:
Основные поля из AssociationUserMeeting:
left_id (ForeignKey на UserTabit)
right_id (ForeignKey на Meeting)
created_at (автозаполнение)
updated_at (автозаполнение)
Предварительное создание объектов классов, с которыми есть связанные поля (использовать существующие фабрики):
Создать объекты UserTabit и Problem перед созданием Meeting и AssociationUserMeeting, так как они являются обязательными внешними ключами.
Убедиться, что создание объектов изолировано и не зависит от состояния БД.
Реализовать функции для создания объектов:
create_meetings(count, **kwargs) - для пакетного создания встреч
create_user_meeting_associations(user_id, meeting_ids) - для создания связей между пользователем и встречами
Интеграция в fill_db.py:
Добавить вызов функций создания встреч и их связей в функцию fill_all_data()
Убедиться, что все объекты создаются при вызове fill_all_data() (см. make-команды)
Настроить логирование Опционально: В случае хэширования значения вывести в логи значение до хэширования
Тестирование:
Проверить создание встреч через логи
Убедиться в корректности данных через DBeaver/PDAdmin
Проверить связи между встречами и пользователями
Обновить Makefile и README.md
Где?
Где делаем реализацию задачи, какие сервисы задействованы, ссылка на требования, сcылка на API, скриншоты.
Приоритет задачи: высокий
Сложность задачи: средняя (решается стандартно, но может потребовать усилий при отладке или тестировании)
Количество разработчиков для выполнения задачи: 1
Зачем?
Зачем выполняется реализация задачи и какую проблему она решает.
Необходимо реализовать фабрики для создания тестовых данных встреч (
Meeting
) и их связей с пользователями (AssociationUserMeeting
). Эти сущности важны для тестирования функциональности, связанной с управлением встречами и их участниками.Как нужно делать?
Как мы выполняем реализацию данной задачи, какие действия нужны для достижения цели.
Изучить модели и связи между моделями, необходимые для реализации функционала
Создать файлы в директории
fake_data_factories
:meeting_factory.py
для фабрикиMeeting
association_user_meeting_factory.py
для фабрикиAssociationUserMeeting
Реализовать классы фабрик:
MeetingFactory
:Meeting
:title
(уникальный в рамках проблемы)description
problem_id
(ForeignKey на Problem)owner_id
(ForeignKey на UserTabit)date_meeting
(дата встречи)status
(enum StatusMeeting)place
(место встречи)transfer_counter
(счетчик переносов даты)created_at
(автозаполнение)updated_at
(автозаполнение)AssociationUserMeetingFactory
:AssociationUserMeeting
:left_id
(ForeignKey на UserTabit)right_id
(ForeignKey на Meeting)created_at
(автозаполнение)updated_at
(автозаполнение)UserTabit
иProblem
перед созданиемMeeting
иAssociationUserMeeting
, так как они являются обязательными внешними ключами.create_meetings(count, **kwargs)
- для пакетного создания встречcreate_user_meeting_associations(user_id, meeting_ids)
- для создания связей между пользователем и встречамиfill_db.py
:fill_all_data()
fill_all_data()
(см. make-команды)Настроить логирование
Опционально: В случае хэширования значения вывести в логи значение до хэширования
Тестирование:
Makefile
иREADME.md
Где?
Где делаем реализацию задачи, какие сервисы задействованы, ссылка на требования, сcылка на API, скриншоты.
Связанные файлы:
src/problems/models/meeting_models.py
(Meeting
)src/problems/models/association_models.py
(AssociationUserMeeting
)fake_data_factories/meeting_factory.py
fake_data_factories/association_user_meeting_factory.py
fake_data_factories/fill_db.py
fake_data_factories/constants.py
Makefile
README.md
Технические требования:
created_at
/updated_at
/date_meeting
/fake_data_factories/constants.py
The text was updated successfully, but these errors were encountered: