Skip to content
Testtools - tasteful testing for python
Python Makefile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



testtools is a set of extensions to the Python standard library's unit testing

These extensions have been derived from years of experience with unit testing
in Python and come from many different sources.


If you would like to learn more about testtools, consult our documentation in
the 'doc/' directory.  You might like to start at 'doc/overview.rst' or


This project is distributed under the MIT license and copyright is owned by
Jonathan M. Lange and the testtools authors. See LICENSE for details.

Some code in 'testtools/' is taken from Python's unittest module, and is
copyright Steve Purcell and the Python Software Foundation, it is distributed
under the same license as Python, see LICENSE for details.

Required Dependencies

 * Python 2.6+ or 3.0+

If you would like to use testtools for earlier Python's, please use testtools

Optional Dependencies

If you would like to use our undocumented, unsupported Twisted support, then
you will need Twisted.

If you want to use ``fixtures`` then you can either install fixtures (e.g. from or
or alternatively just make sure your fixture objects obey the same protocol.

Bug reports and patches

Please report bugs using Launchpad at <>.
Patches can also be submitted via Launchpad, or mailed to the author.  You can
mail the author directly at

There's no mailing list for this project yet, however the testing-in-python
mailing list may be a useful resource:

 * Address:
 * Subscription link:


testtools used to be called 'pyunit3k'.  The name was changed to avoid
conflating the library with the Python 3.0 release (commonly referred to as


 * Canonical Ltd
 * Bazaar
 * Twisted Matrix Labs
 * Robert Collins
 * Andrew Bennetts
 * Benjamin Peterson
 * Jamu Kakar
 * James Westby
 * Martin [gz]
 * Michael Hudson-Doyle
 * Aaron Bentley
 * Christian Kampka
 * Gavin Panella
 * Martin Pool
Something went wrong with that request. Please try again.