NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3712 most downloaded on PyPI
Extensions to the Python standard library unit testing framework
Last release 5 months ago
24 Apr 2026
Release timing varies
gaps range from 1 weeks to 1.7 years
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
64 releases · first in 2011
This release brings consistent use of super for better compatibility with multiple inheritance, fixed Python3 support, improvements in fixture and mat
This release brings consistent use of super for better compatibility with multiple inheritance, fixed Python3 support, improvements in fixture and mather outputs and a compat helper for testing libraries that deal with bytestrings.
TestCase now uses super to call base unittest.TestCase constructor,
setUp and tearDown. (Tim Cole, #771508)
If, when calling useFixture an error occurs during fixture set up, we
still attempt to gather details from the fixture. (Gavin Panella)
Additional compat helper for BytesIO for libraries that build on
testtools and are working on Python 3 porting. (Robert Collins)
Corrected documentation for MatchesStructure in the test authors
document. (Jonathan Lange)
LessThan error message now says something that is logically correct.
(Gavin Panella, #762008)
Multiple details from a single fixture are now kept separate, rather than being mooshed together. (Gavin Panella, #788182)
Python 3 support now back in action. (Martin [gz], #688729)
try_import and try_imports have a callback that is called whenever
they fail to import a module. (Martin Pool)
One column per quarter.
The last release of testtools could not be easy_installed. This is considered severe enough for a re-release.
The last release of testtools could not be easy_installed. This is considered severe enough for a re-release.
doc/ in the source distribution, making testtools installable
from PyPI again (Tres Seaver, #757439)Many, many new matchers, vastly expanded documentation, stacks of bug fixes, better unittest2 integration. If you've ever wanted to try out testtools
Many, many new matchers, vastly expanded documentation, stacks of bug fixes, better unittest2 integration. If you've ever wanted to try out testtools but been afraid to do so, this is the release to try.
TestResult objects when no timing data has
been received are now datetime-with-timezone, which allows them to be
sensibly serialised and transported. (Robert Collins, #692297)AnnotatedMismatch now correctly returns details.
(Jonathan Lange, #724691)
distutils integration for the testtools test runner. Can now use it for 'python setup.py test'. (Christian Kampka, #693773)
EndsWith and KeysEqual now in testtools.matchers.all.
(Jonathan Lange, #692158)
MatchesException extended to support a regular expression check against
the str() of a raised exception. (Jonathan Lange)
MultiTestResult now forwards the time API. (Robert Collins, #692294)
MultiTestResult now documented in the manual. (Jonathan Lange, #661116)
New content helpers content_from_file, content_from_stream and
attach_file make it easier to attach file-like objects to a
test. (Jonathan Lange, Robert Collins, #694126)
New ExpectedException context manager to help write tests against things
that are expected to raise exceptions. (Aaron Bentley)
New matchers:
MatchesListwise matches an iterable of matchers against an iterable
of values. (Michael Hudson-Doyle)
MatchesRegex matches a string against a regular expression.
(Michael Hudson-Doyle)
MatchesStructure matches attributes of an object against given
matchers. (Michael Hudson-Doyle)
AfterPreproccessing matches values against a matcher after passing them
through a callable. (Michael Hudson-Doyle)
MatchesSetwise matches an iterable of matchers against an iterable of
values, without regard to order. (Michael Hudson-Doyle)
setup.py can now build a snapshot when Bazaar is installed but the tree
is not a Bazaar tree. (Jelmer Vernooij)
Support for running tests using distutils (Christian Kampka, #726539)
Vastly improved and extended documentation. (Jonathan Lange)
Use unittest2 exception classes if available. (Jelmer Vernooij)
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →