Полезные ресурсы в отношении тестирования в Python из круса "Тестирование в Python" Школы сильных программистов. Упомянутые в крусе, а так же найденные в процессе изучения.
- Полифморфизм простыми словами.
- Typeclasses in Python
- classes - Умный, питонический, ad-hoc, типизированный полиморфизм для Python.
- unittest - Стандартный модуль для реализации юнит-тестов.
- pytest - Популярный фреймворк для создания и выполнения тестов в Python.
- pytest-mypy-plugins - Плагин
pytest
для тестирования типов, стабов и плагиновmypy
. - pytest-mock - плагин
pytest
предоставляет фикстуруmocker
, которая является тонкой оберткой вокруг API патчей, предоставляемых стандартным пакетомmock
- HTTPretty - Лучшая mock библиотека для HTTP вызовов. Базируется на мокании сокетов.
- doctest - Модуль
doctest
ищет фрагменты текста, которые выглядят как интерактивные сессии Python, а затем выполняет эти сессии, чтобы проверить, что они работают именно так, как показано. - pytest-modified-env - Плагин Pytest для сбоя теста, если после него остается измененный
os.environ
. - unittest.mock - mock object library
- Mocks Aren't Stubs
- Mocks and explicit contracts
- Engineering guide to writing correct User Stories
- wemake-python-styleguide - Линтер, который умеет мерить всю сложность и следит за именами.
- Complexity Waterfall - Статья, которая описывает, как сложность перетекает из одного места в другое.
- Mimesis: The Fake Data Generator - Лучшая библиотека для генерации фековых данных.
- Django-fakery - Генерация
Django
моделей. - flake8-pytest-style - Плагин
flake8
проверяет общие проблемы в тестах написанных на основеpytest
. - PEP 692 - Keyword collisions - про разные типы аргументов.
- pytest-bdd - BDD library for the pytest runner
- pytest-deadfixtures - Простой плагин для составления списка неиспользуемых или дублирующихся фикстур в тестах pytest.
- Make tests a part of your app - #вопрос есть опыт использования кастомных hypothesis-стратегий для генерации сущностей типа UserData вместо фикстур с mimesis? Может есть какие-то известные потенциальные проблемы с этим? #ответ Никита Соболев: Да, есть. Нужно сначала делать правила, потом генерацию. Желательно правила привязывать к бизнес логике (из чата в Telegram)
- factory_boy - As a fixtures replacement tool, it aims to replace static, hard to maintain fixtures with easy-to-use factories for complex objects.
- pytest-watcher - Rerun pytest when your code changes.
- pytest-testmon - pytest-testmon is a pytest plugin which selects and executes only tests you need to run.
- behave - behave is behavior-driven development, Python style.
- conventional: comments - Комментарии, которые легко читать и понимать.
- Make VS Code Awesome - Курс по настройке VS Code.
- naming - Гайд по неймингу в Python от wemake-services.
- glom - Python's nested data operator (and CLI), for all your declarative restructuring needs. Got data? Glom it!
- wemake-django-template - Bleeding edge django3.2 template focused on code quality and security.