Nice pytest plugin to help you with Django pluggable application testing.
This exposes some useful tools for Django applications developers to facilitate tests authoring, including:
- Settings overriding
- Template tags testing
- User creation
- Request object creation
- Management command calls
- DB queries audit
Suitable for testing apps for Django 1.7+.
How to use
Let's say you have classical tests placing (inside application directory):
package_dir |__ myapp | |__ __init__.py | |__ tests | | |__ __init__.py | | |__ conftest.py <- Configure djangoapp here. | |__ setup.py
Add the following lines into conftest.py to configure djangoapp and start using it:
# conftest.py from pytest_djangoapp import configure_djangoapp_plugin pytest_plugins = configure_djangoapp_plugin()
Fixtures usage examples can be found in the documentation and the source code.
What about pytest-django
There is a couple of design decisions in pytest-django that might make it uncomfortable to work with.
- It uses setuptools entrypoints feature for pytest plugin discovery. It's not a problem by itself, but all kinds of bootstrapping with side effects made by pytest-django just on startup, make the plugin a poor choice for cases of system-wide (i.e. not venv) installations.
- Philosophy that next to no unit test should require DB access may be quite annoying.