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
В скриптах ожидания ES и Redis в тестах (async_api/tests/functional/utils/wait_for_elasticsearch.py и async_api/tests/functional/utils/wait_for_redis.py) вместо вечного цикла, в который можно попасть при возникновении сложностей, лучше использовать backoff из прошлых спринтов. Он более функционален в сравнении с вечным циклом, теоретически он может сигнализировать команде поддержки после определенного количества попыток.
Не используйте прямое указание кодов ответов сервера (200, 400 и т.д.), применяйте http.HTTPStatus. Дело в том, что в коде проекта найти HTTPStatus.OK значительно проще чем найти 200, кроме того этим мы защитимся от опечаток, да и читаемость кода повысится.
[можно лучше] Старайтесь больше использовать абстрактные классы в работе. В ваших сервисах у вас явно используется класс AsyncElasticsearch, а если со временем перейдем на другой сервис полнотекстового поиска, то придетс менять код приложения много где. У меня есть небольшой набросок, https://github.com/RomanAVolodin/FastAPI_DI/tree/feature/DI, вся работа идет с абстрактными классами, которые выступают в роли интерфейсов, а сопоставление абстрактного класса и его реализации происходит в одном месте, и если будет принято решение использовать другую реализацию, то достуточно будет внести изменение в одном месте кода.
The text was updated successfully, but these errors were encountered:
В основном коде мы используем fastapi.status. В тестах кажется лишним использовать константы - они создают лишнюю когнитивную нагрузку. В моём понимании тесты должны быть простые и читаемые. Аргумент с поиском по проекту сомнительный, лично мне проще найти 200, чем HTTPStatus.OK. В поддержку литералов в тестах: https://medium.com/@erik.sacre/on-tdd-literals-versus-constants-in-tests-8ac992c7873f
Создали базовый класс для сервисов: Add abstract classes, remove empty conftest.py #55. Отдельный слой в виде репозитория создавать не стали, так как сервисы и так не содержат никакой бизнес логики, и лишний слой был бы просто нагромождением.
Отлично реализовано👍
async_api/tests/conftest.py
- пустойasync_api/tests/functional/utils/wait_for_elasticsearch.py
иasync_api/tests/functional/utils/wait_for_redis.py
) вместо вечного цикла, в который можно попасть при возникновении сложностей, лучше использовать backoff из прошлых спринтов. Он более функционален в сравнении с вечным циклом, теоретически он может сигнализировать команде поддержки после определенного количества попыток.The text was updated successfully, but these errors were encountered: