Nice pytest plugin to help you with Django pluggable application testing.

0 1 26 1
  • Created: June 16, 2018
  • Last Release: Nov. 23, 2019
  • Last Commit: Dec. 5, 2019


release lic ci coverage


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
  • Mailing
  • Messages
  • DB queries audit
  • etc.

Suitable for testing apps for Django 1.7+.

How to use

Let's say you have classical tests placing (inside application directory):

|__ myapp
|  |__
|  |__ tests
|  |  |__
|  |  |__  <- Configure djangoapp here.

Add the following lines into to configure djangoapp and start using it:

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.

  1. 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.
  2. Philosophy that next to no unit test should require DB access may be quite annoying.