testtools 0.9.12

Milestone information

Jonathan Lange
Release registered:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata


Assigned to you:
No blueprints or bugs assigned to you.
17 Jonathan Lange, 3 Martin Packman, 1 Robert Collins
No blueprints are targeted to this milestone.
21 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon testtools-0.9.12.tar.gz (md5, sig) 1,049
last downloaded 122 weeks ago
Total downloads: 1,049

Release notes 

This is a very big release. We've made huge improvements on three fronts:
1. Test failures are way nicer and easier to read
2. Matchers and ``assertThat`` are much more convenient to use
3. Correct handling of extended unicode characters

We've trimmed off the fat from the stack trace you get when tests fail, we've
cut out the bits of error messages that just didn't help, we've made it easier
to annotate mismatch failures, to compare complex objects and to match raised

Testing code was never this fun.


View the full changelog


* ``AfterPreproccessing`` renamed to ``AfterPreprocessing``, which is a more
correct spelling. Old name preserved for backwards compatibility, but is
now deprecated. Please stop using it.
(Jonathan Lange, #813460)

* ``assertThat`` raises ``MismatchError`` instead of
``TestCase.failureException``. ``MismatchError`` is a subclass of
``AssertionError``, so in most cases this change will not matter. However,
if ``self.failureException`` has been set to a non-default value, then
mismatches will become test errors rather than test failures.

* ``gather_details`` takes two dicts, rather than two detailed objects.
(Jonathan Lange, #801027)

* ``MatchesRegex`` mismatch now says "<value> does not match /<regex>/" rather
than "<regex> did not match <value>". The regular expression contains fewer
backslashes too. (Jonathan Lange, #818079)

* Tests that run with ``AsynchronousDeferredRunTest`` now have the ``reactor``
attribute set to the running reactor. (Jonathan Lange, #720749)


* All public matchers are now in ``testtools.matchers.__all__``.
(Jonathan Lange, #784859)

* ``assertThat`` can actually display mismatches and matchers that contain
extended unicode characters. (Jonathan Lange, Martin [gz], #804127)

* ``assertThat`` output is much less verbose, displaying only what the mismatch
tells us to display. Old-style verbose output can be had by passing
``verbose=True`` to assertThat. (Jonathan Lange, #675323, #593190)

* ``assertThat`` accepts a message which will be used to annotate the matcher.
This can be given as a third parameter or as a keyword parameter.
(Robert Collins)

* Automated the Launchpad part of the release process.
(Jonathan Lange, #623486)

* Correctly display non-ASCII unicode output on terminals that claim to have a
unicode encoding. (Martin [gz], #804122)

* ``DocTestMatches`` correctly handles unicode output from examples, rather
than raising an error. (Martin [gz], #764170)

* ``ErrorHolder`` and ``PlaceHolder`` added to docs. (Jonathan Lange, #816597)

* ``ExpectedException`` now matches any exception of the given type by
default, and also allows specifying a ``Matcher`` rather than a mere regular
expression. (Jonathan Lange, #791889)

* ``FixtureSuite`` added, allows test suites to run with a given fixture.
(Jonathan Lange)

* Hide testtools's own stack frames when displaying tracebacks, making it
easier for test authors to focus on their errors.
(Jonathan Lange, Martin [gz], #788974)

* Less boilerplate displayed in test failures and errors.
(Jonathan Lange, #660852)

* ``MatchesException`` now allows you to match exceptions against any matcher,
rather than just regular expressions. (Jonathan Lange, #791889)

* ``MatchesException`` now permits a tuple of types rather than a single type
(when using the type matching mode). (Robert Collins)

* ``MatchesStructure.byEquality`` added to make the common case of matching
many attributes by equality much easier. ``MatchesStructure.byMatcher``
added in case folk want to match by things other than equality.
(Jonathan Lange)

* New convenience assertions, ``assertIsNone`` and ``assertIsNotNone``.
(Christian Kampka)

* New matchers:

* ``AllMatch`` matches many values against a single matcher.
(Jonathan Lange, #615108)

* ``Contains``. (Robert Collins)

* ``GreaterThan``. (Christian Kampka)

* New helper, ``safe_hasattr`` added. (Jonathan Lange)

* ``reraise`` added to ``testtools.compat``. (Jonathan Lange)

0 blueprints and 21 bugs targeted

Bug report Importance Assignee Status
764170 #764170 DocTestMatches error when 'actual' is unicode 2 Critical Martin Packman  10 Fix Released
804122 #804122 UnicodeEncodeError in TextTestResult._show_list with UTF-8 terminal 2 Critical Martin Packman  10 Fix Released
816709 #816709 Python 3 failures in trunk 2 Critical Jonathan Lange  10 Fix Released
817431 #817431 testtools trunk now depends on python-fixtures for running tests 2 Critical Jonathan Lange  10 Fix Released
820680 #820680 NEWS symlink prevents lp:testtools being branched 2 Critical Jonathan Lange  10 Fix Released
826179 #826179 running some tests on their own fails 2 Critical Jonathan Lange  10 Fix Released
784859 #784859 MatchesRegex doesn't appear in help(testtools.matchers) 3 High Jonathan Lange  10 Fix Released
804127 #804127 assertThat(..., verbose=True) sometimes generates unprintable AssertionErrors 4 Medium Martin Packman  10 Fix Released
816597 #816597 PlaceHolder and ErrorHolder not in docs 4 Medium Jonathan Lange  10 Fix Released
593190 #593190 assertThat unconditionally prints matchee on mismatch 6 Wishlist Jonathan Lange  10 Fix Released
615108 #615108 Please provide a way to match an iterable of matchees 6 Wishlist Jonathan Lange  10 Fix Released
623486 #623486 'make release' does not release to Launchpad 6 Wishlist Jonathan Lange  10 Fix Released
660852 #660852 text failure report is too gassy 6 Wishlist Jonathan Lange  10 Fix Released
675323 #675323 assertThat style gives overly verbose output 6 Wishlist Jonathan Lange  10 Fix Released
720749 #720749 No public API to get reactor being used by AsynchronousDeferredRunTests 6 Wishlist Jonathan Lange  10 Fix Released
788974 #788974 exception stack depth not restricted to relevant modules 6 Wishlist Jonathan Lange  10 Fix Released
791889 #791889 The value_re argument for ExpectedException only fits some situations 6 Wishlist Jonathan Lange  10 Fix Released
801027 #801027 gather_details API could be easier to use 6 Wishlist Jonathan Lange  10 Fix Released
813460 #813460 "AfterPreproccessing" misspelt 6 Wishlist Jonathan Lange  10 Fix Released
814007 #814007 IsInstance matcher 6 Wishlist Robert Collins  10 Fix Released
818079 #818079 Way too many slashes in MatchesRegex mismatch 6 Wishlist Jonathan Lange  10 Fix Released
This milestone contains Public information
Everyone can see this information.