testtools 0.9.8

Next release of testtools

Milestone information

Project:
testtools
Series:
0.9
Version:
0.9.8
Released:
 
Registrant:
Robert Collins
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
1 Jelmer Vernooij, 16 Jonathan Lange, 8 Martin Packman, 1 Michael Hudson-Doyle, 3 Robert Collins
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
29 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.8.tar.gz (md5, sig) Source tarball. 1,523
last downloaded 48 weeks ago
Total downloads: 1,523

Release notes 

In this release we bring some very interesting improvements:

* new matchers for exceptions, sets, lists, dicts and more.

* experimental (works but the contract isn't supported) twisted reactor
  support.

* The built in runner can now list tests and filter tests (the -l and
  --load-list options).

Changelog 

View the full changelog

Changes
-------

* addUnexpectedSuccess is translated to addFailure for test results that don't
  know about addUnexpectedSuccess. Further, it fails the entire result for
  all testtools TestResults (i.e. wasSuccessful() returns False after
  addUnexpectedSuccess has been called). Note that when using a delegating
  result such as ThreadsafeForwardingResult, MultiTestResult or
  ExtendedToOriginalDecorator then the behaviour of addUnexpectedSuccess is
  determined by the delegated to result(s).
  (Jonathan Lange, Robert Collins, #654474, #683332)

* startTestRun will reset any errors on the result. That is, wasSuccessful()
  will always return True immediately after startTestRun() is called. This
  only applies to delegated test results (ThreadsafeForwardingResult,
  MultiTestResult and ExtendedToOriginalDecorator) if the delegated to result
  is a testtools test result - we cannot reliably reset the state of unknown
  test result class instances. (Jonathan Lange, Robert Collins, #683332)

* Responsibility for running test cleanups has been moved to ``RunTest``.
  This change does not affect public APIs and can be safely ignored by test
  authors. (Jonathan Lange, #662647)

Improvements
------------

* ``assertIsInstance`` supports a custom error message to be supplied, which
  is necessary when using ``assertDictEqual`` on Python 2.7 with a
  ``testtools.TestCase`` base class. (Jelmer Vernooij)

* Experimental support for running tests that return Deferreds.
  (Jonathan Lange, Martin [gz])

* Provide a per-test decorator, run_test_with, to specify which RunTest
  object to use for a given test. (Jonathan Lange, #657780)

* Fix the runTest parameter of TestCase to actually work, rather than raising
  a TypeError. (Jonathan Lange, #657760)

* New matcher ``EndsWith`` added to complement the existing ``StartsWith``
  matcher. (Jonathan Lange, #669165)

* Non-release snapshots of testtools will now work with buildout.
  (Jonathan Lange, #613734)

* Malformed SyntaxErrors no longer blow up the test suite. (Martin [gz])

* ``MatchesException`` added to the ``testtools.matchers`` module - matches
  an exception class and parameters. (Robert Collins)

* ``MismatchesAll.describe`` no longer appends a trailing newline.
  (Michael Hudson-Doyle, #686790)

* New ``KeysEqual`` matcher. (Jonathan Lange)

* New helpers for conditionally importing modules, ``try_import`` and
  ``try_imports``. (Jonathan Lange)

* ``Raises`` added to the ``testtools.matchers`` module - matches if the
  supplied callable raises, and delegates to an optional matcher for validation
  of the exception. (Robert Collins)

* ``raises`` added to the ``testtools.matchers`` module - matches if the
  supplied callable raises and delegates to ``MatchesException`` to validate
  the exception. (Jonathan Lange)

* Tests will now pass on Python 2.6.4 : an ``Exception`` change made only in
  2.6.4 and reverted in Python 2.6.5 was causing test failures on that version.
  (Martin [gz], #689858).

* ``testtools.TestCase.useFixture`` has been added to glue with fixtures nicely.
  (Robert Collins)

* ``testtools.run`` now supports ``-l`` to list tests rather than executing
  them. This is useful for integration with external test analysis/processing
  tools like subunit and testrepository. (Robert Collins)

* ``testtools.run`` now supports ``--load-list``, which takes a file containing
  test ids, one per line, and intersects those ids with the tests found. This
  allows fine grained control of what tests are run even when the tests cannot
  be named as objects to import (e.g. due to test parameterisation via
  testscenarios). (Robert Collins)

* Update documentation to say how to use testtools.run() on Python 2.4.
  (Jonathan Lange, #501174)

* ``text_content`` conveniently converts a Python string to a Content object.
  (Jonathan Lange, James Westby)

0 blueprints and 29 bugs targeted

Bug report Importance Assignee Status
657760 #657760 runTest argument to TestCase unusable 2 Critical Jonathan Lange  10 Fix Released
663540 #663540 Test suite broken on windows by twisted Deferred changes 2 Critical Jonathan Lange  10 Fix Released
663544 #663544 Test suite broken on Python 2.4 by RunTest changes 2 Critical Jonathan Lange  10 Fix Released
663558 #663558 Test suite broken on Python 3 by monkey changes 2 Critical Jonathan Lange  10 Fix Released
666151 #666151 Tests of 0.9.7 fail with Python 3.1 2 Critical Martin Packman  10 Fix Released
666306 #666306 Test suite shouldn't depend on twisted 2 Critical Martin Packman  10 Fix Released
666337 #666337 @defer.inlineCallbacks incompatible with Python 2.4 2 Critical Jonathan Lange  10 Fix Released
666345 #666345 test_spinner.TestRunInReactor.test_clean_running_threads fails with an extra thread 2 Critical Robert Collins  10 Fix Released
667513 #667513 Test suite shouldn't depend on python-fixtures 2 Critical Jonathan Lange  10 Fix Released
675327 #675327 Raises/MatchesException regressions 2 Critical Martin Packman  10 Fix Released
675331 #675331 testtools.tests.test_content.TestBytesContent.test_bytes fails on Python 3 2 Critical Martin Packman  10 Fix Released
683332 #683332 ExtendedToOriginalDecorator no longer decorates wasSuccessful 2 Critical Robert Collins  10 Fix Released
688719 #688719 MatchesException broken with Python 2.4 2 Critical Martin Packman  10 Fix Released
688724 #688724 MultiTestResult.wasSuccessful broken in Python 2.4 2 Critical Martin Packman  10 Fix Released
688729 #688729 test_run imports StringIO, not available in Python 3 2 Critical Martin Packman  10 Fix Released
689858 #689858 test failures on windows w/python 2.6 2 Critical Martin Packman  10 Fix Released
489156 #489156 Browseable documentation 6 Wishlist Jonathan Lange  10 Fix Released
501174 #501174 document how to use python -m with testtools on python 2.4 (its not pretty) 6 Wishlist Jonathan Lange  10 Fix Released
613734 #613734 Hard to make snapshots for use with buildout 6 Wishlist Jonathan Lange  10 Fix Released
654474 #654474 An unexpectedSuccess is like a failure not a success 6 Wishlist Jonathan Lange  10 Fix Released
657780 #657780 Per-test decorator syntax for test runner 6 Wishlist Jonathan Lange  10 Fix Released
662647 #662647 Move responsibility for running cleanups to RunTest 6 Wishlist Jonathan Lange  10 Fix Released
662648 #662648 Better support for debugging unhandled errors in Deferreds 6 Wishlist Jonathan Lange  10 Fix Released
666923 #666923 .testr.conf for testtools 6 Wishlist Robert Collins  10 Fix Released
668511 #668511 fixture tests should SKIP not be elided 6 Wishlist Jonathan Lange  10 Fix Released
668516 #668516 Twisted tests should skip, not be elided 6 Wishlist Jonathan Lange  10 Fix Released
669165 #669165 EndsWith matcher 6 Wishlist Jonathan Lange  10 Fix Released
686790 #686790 trailing newline added by MismatchesAll.describe can be ugly 6 Wishlist Michael Hudson-Doyle  10 Fix Released
689149 #689149 TestCase.assertIsInstance doesn't take optional msg 1 Undecided Jelmer Vernooij  10 Fix Released
This milestone contains Public information
Everyone can see this information.