Анонс pytest-djangoapp
О новом плагине для pytest, который упростит вам написание и исполнение тестов для подключаемых приложений Django.
На днях написал плагин к замечательному каркасу pytest, позволяющий упростить тестирование приложений для Django. Полагаю, что он будет полезен людям, участвующим в разработке этих самых подключаемых приложений.
Плагин называется pytest-djangoapp и разрабатывается открыто на GitHub — https://github.com/idlesign/pytest-djangoapp
От давно известного плагина
1. Механизм активации.
Новый плагин стартует только для тех проектов, в которых вам это нужно. Вы явно указываете в
2. Доступ к БД.
По умолчанию плагин использует базу данных
Что касается набора фикстур, то среди них есть:
Более подробная документаци доступна по адресу http://pytest-djangoapp.readthedocs.io (англ.).
Я уже перевёл на использование этого плагина django-sitemessage и django-sitetree , и пока доволен.
Другие свои приложения тоже планирую перевести. Чего и вам желаю.
Тестировать проще!
Плагин называется pytest-djangoapp и разрабатывается открыто на GitHub — https://github.com/idlesign/pytest-djangoapp
От давно известного плагина
pytest-django
, его отличает не только набор фикстур в поставке, но и более принципиальные вещи.1. Механизм активации.
Новый плагин стартует только для тех проектов, в которых вам это нужно. Вы явно указываете в
conftest.py
, что хотите активировать плагин (и сразу конфигурируете его, если требуется). Это позволяет не ловить неожиданные спецэффекты в тестах для других не относящихся к Django проектов.from pytest_djangoapp import configure_djangoapp_plugin
pytest_plugins = configure_djangoapp_plugin() # Вот и всё. В тестах можно использовать фикстуры.
2. Доступ к БД.
По умолчанию плагин использует базу данных
sqlite
в памяти, которая автоматически очищается после прогона очередного теста. Это означает, что кажный новый тест работает с чистой базой и не наткнётся случайно на неожиданные данные от предыдущего. А кроме того, это означает, что вам не нужно, как в pytest-django
, маркировать функции, которым требуется доступ в БД, то есть, вы сможете без труда тестировать логику в «толстых» моделях.Что касается набора фикстур, то среди них есть:
- для тестирования шаблонных тегов
- для подмены настроек проекта
- для создания пользователей
- для генерирования объектов запросов
Более подробная документаци доступна по адресу http://pytest-djangoapp.readthedocs.io (англ.).
Я уже перевёл на использование этого плагина django-sitemessage и django-sitetree , и пока доволен.
Другие свои приложения тоже планирую перевести. Чего и вам желаю.
Тестировать проще!
На заметку
В разделе «События» можно узнать о надвигающихся событиях мира Python, а также поделиться своими. Если вы являетесь организатором встречи/конференции/спринта, зарегистрируйте это событие в указанном разделе, чтобы о нём узнали все желающие.