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.

py.test

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:

DATABASE_ENGINE
DATABASE_NAME
DATABASE_USER
DATABASE_PASSWORD
DATABASE_HOST
DATABASE_PORT

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.

tox

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