Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Последняя неделя #183

Merged
merged 207 commits into from
Apr 13, 2024
Merged

Последняя неделя #183

merged 207 commits into from
Apr 13, 2024

Conversation

NECROshizo
Copy link
Collaborator

@NECROshizo NECROshizo commented Apr 7, 2024

Реализовано все приложение из базовых требований:

  • добавлен S3(minIO)
  • подключено Celery для отправки email для входя пользователя (здесь)
  • добавлено логирование (здесь )
  • изменена админка для удобства добавление данных для JSONfield (здесь, форма, виджет)
  • добавлен механизм выдачи достижений и начисление наград(здесь, тесты)

holohup and others added 30 commits February 21, 2024 15:07
Добавление ER-диаграммы в read.me
Минорные исправление и добавления health-check.
…ect.toml в корень проекта. (#19)

* Написан Makefile, дополнены .env.example, README.md, перенесён pyproject.toml в корень проекта.

* Разделены make-команды на prod и dev.
…nore статику, чуть переделал README под реалии проекта
…class, everything is stored in cache from now on
…file

Переделал Makefile, починил docker-compose для прода, добавил в gitignore статику, чуть переделал README под реалии проекта
…riable

Добавил переменную порта в docker-compose.dev.yml, чуть переделал Makefile, поправил команды в README
Добавлены модели для бега
holohup and others added 27 commits April 3, 2024 10:29
* added minio as s3 server-container

* added minio as s3 server-container

* added minio as s3 server-container

* added minio as s3 server-container

* updated env example

* updated cd
…y-workout-tracker/diary-workout-tracker-backend into feature/logic_project_timezone_user
…ect_timezone_user

Feature/logic project timezone user
…achievements

Повторяющиеся ачивки
@NECROshizo NECROshizo requested a review from YarikineZ April 7, 2024 11:28
Copy link

@YarikineZ YarikineZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ребят, ну вы красавчики. Очень рад за вас.

Пара комментов:

  1. Celery для отправки почты очень хорошая штука, но чтобы разобраться как оно работает внутри, советую попробовать построить свой обработчик очереди на Redis для той же почты. Будет полезно для самообразования + это получится более гибкая штука, в которую можно будет запихнуть например еще пуш уведомления, подключить к админке и пр
  2. Очень рад что у вас появился S3. Кажется в этот ПР попало не все, не нашел откуда дегаются методы "положить картинку" и "получить картинку". В целом, тут надо просто потрогать технологию. В корпе/стартапе будет все тоже самое, только s3 будет не в компоузе, а внешний
  3. Про тесты написал чуть выше. Не стоит тестировать вообще все, надо научиться выделять штуки, которые хотите зафиксировать и писать тесты под них

AWS_S3_SIGNATURE_VERSION = os.getenv("AWS_S3_SIGNATURE_VERSION")
AWS_S3_USE_SSL = os.getenv("AWS_S3_USE_SSL", False) == "True"
AWS_S3_SECURE_URLS = os.getenv("AWS_S3_SECURE_URLS", False) == "True"
AWS_S3_URL_PROTOCOL = os.getenv("AWS_S3_URL_PROTOCOL", "http:")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну ваще красавчики



@pytest.mark.django_db
def test_ios_achievement_is_being_created(user, user_client, load_achievement_fixtures, training_end_data) -> None:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Плохо понимаю что вы решили тестить: интерфейс, базу, саму джангу?

Смотрите, тесты обычно пишутся, когда есть какая-то сложная штука, с которой удобно обращаться как с черным ящиком: зафиксировали и если кто-то что-то задел, то не коммитит.

Например на проектах с мобилками можно писать тесты на соответствие ответов свагеру. Не тот свагер, который вы генерируете, а зафиксированный от системного аналитика. И там тестятся и коды ответа и соответствие body ответа

Или есть например риск задеть настройки интеграции с почтовым сервером. Можно перед деплоем послать тестовое сообщение с assert на код ответа

В общем тестирование это плохо объясненная в курсах тема. Наверное главное это понять:

  1. Писать тесты под все не нужно. Потом просто дольше вносить правки
  2. Нужно научиться выделять куски, где есть куча пограничных кейсов и есть риск что-то задеть. И уже писать тесты под это

@NECROshizo NECROshizo merged commit 6abbfdd into main Apr 13, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants