Running the Test Suite

django-treebeard includes a comprehensive test suite. It is highly recommended that you run and update the test suite when you send patches.


You will need pytest to run the test suite. It’s included with the development dependencies:

$ pip install -r requirements.txt

Then just run the test suite:

$ py.test

You can use all the features and plugins of pytest this way.

By default the test suite will run using a sqlite3 database in RAM, but you can change this setting environment variables:


Sets the database settings to be used by the test suite. Useful if you want to test the same database engine/version you use in production.


django-treebeard uses tox to run the test suite in all the supported environments:

  • py27-dj16-sqlite
  • py27-dj16-mysql
  • py27-dj16-pgsql
  • py27-dj17-sqlite
  • py27-dj17-mysql
  • py27-dj17-pgsql
  • py34-dj16-sqlite
  • py34-dj16-pgsql
  • py34-dj17-sqlite
  • py34-dj17-pgsql

This means that the test suite will run 10 times to test every environment supported by django-treebeard. This takes a long time. If you want to test only one or a few environments, please use the -e option in tox, like:

$ tox -e py34-dj17-pgsql