django tool for running tests organized between unit, functional and integration
Python Makefile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bar making it work with apps wherever they are Apr 19, 2011
tests fixing tests Nov 2, 2012
requirements.txt adding "coverage" to requirements Aug 5, 2011


Version 0.4.0


UncleBob is a simple django app that allow you writting per-app tests within these paths:

  • <appname>/tests/unit/test*.py - for unit tests
  • <appname>/tests/functional/test*.py - for functional tests
  • <appname>/tests/integration/test*.py - for integration tests


first of all

pip install unclebob

add it to your django project



TEST_RUNNER = 'unclebob.runners.Nose'
import unclebob


just use the regular test command:

python test

running only the unit tests

python test --unit

running only the functional tests

python test --functional

running only the integration tests

python test --integration

running only a specific path

python test path/to/app/tests


python test path/to/app/tests/unit


if you run only the unit tests, then unclebob is NOT going to setup the test database. Since unit tests are supposed to be "unwired", what I mean is that unit tests MUST NOT make use of actual database, filesystem or network at all.

Instead, they must test isolated parts of your code.

For that reason, ma'am/sir, Uncle Bob is gonna break your neck in case you decide to use those, so called, "external resources" in your unit tests.

although you can tell unclebob to never touch the database at all

in your


other aspects

1. it provides an environment variable, so that you'll know when unclebob is running

When unclebob is running tests, it sets the environment variable UNCLEBOB_RUNNING to the current working directory.

You can use it, for example, in your codebase fr avoiding logging during the tests.


nose is such a really nice tool for writting tests on python.

Instead of using the unittest framework, which is builtin python thou is less fun to use.

And you know, the most joyable is the writting/running test experience, more developers will write tests for the project. And as much tests, better.


This project was named after Uncle Bob Martin, one of the agile manifesto chaps that brought code cleaness techniques and advices to the rest of us.