Changes
-------
* ``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)
Improvements
------------
* 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)