testtools 0.9.30

Milestone information

Project:
testtools
Series:
trunk
Version:
0.9.30
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 Monty Taylor, 1 Robert Collins
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
3 Fix Released

Download files for this release

File Description Downloads

Release notes 

A new sort of TestResult, the StreamResult has been added, as a prototype for
a revised standard library test result API. Expect this API to change.
Although we will try to preserve compatibility for early adopters, it is
experimental and we might need to break it if it turns out to be unsuitable.

Changelog 

View the full changelog

* ``assertRaises`` works properly for exception classes that have custom
  metaclasses

* ``ConcurrentTestSuite`` was silently eating exceptions that propagate from
  the test.run(result) method call. Ignoring them is fine in a normal test
  runner, but when they happen in a different thread, the thread that called
  suite.run() is not in the stack anymore, and the exceptions are lost. We now
  create a synthetic test recording any such exception.
  (Robert Collins, #1130429)

* Fixed SyntaxError raised in ``_compat2x.py`` when installing via Python 3.
  (Will Bond, #941958)

* New class ``StreamResult`` which defines the API for the new result type.
  (Robert Collins)

* New support class ``ConcurrentStreamTestSuite`` for convenient construction
  and utilisation of ``StreamToQueue`` objects. (Robert Collins)

* New support class ``CopyStreamResult`` which forwards events onto multiple
  ``StreamResult`` objects (each of which receives all the events).
  (Robert Collins)

* New support class ``StreamSummary`` which summarises a ``StreamResult``
  stream compatibly with ``TestResult`` code. (Robert Collins)

* New support class ``StreamTagger`` which adds or removes tags from
  ``StreamResult`` events. (RobertCollins)

* New support class ``StreamToDict`` which converts a ``StreamResult`` to a
  series of dicts describing a test. Useful for writing trivial stream
  analysers. (Robert Collins)

* New support class ``TestControl`` which permits cancelling an in-progress
  run. (Robert Collins)

* New support class ``StreamFailFast`` which calls a ``TestControl`` instance
  to abort the test run when a failure is detected. (Robert Collins)

* New support class ``ExtendedToStreamDecorator`` which translates both regular
  unittest TestResult API calls and the ExtendedTestResult API which testtools
  has supported into the StreamResult API. ExtendedToStreamDecorator also
  forwards calls made in the StreamResult API, permitting it to be used
  anywhere a StreamResult is used. Key TestResult query methods like
  wasSuccessful and shouldStop are synchronised with the StreamResult API
  calls, but the detailed statistics like the list of errors are not - a
  separate consumer will be created to support that.
  (Robert Collins)

* New support class ``StreamToExtendedDecorator`` which translates
  ``StreamResult`` API calls into ``ExtendedTestResult`` (or any older
  ``TestResult``) calls. This permits using un-migrated result objects with
  new runners / tests. (Robert Collins)

* New support class ``StreamToQueue`` for sending messages to one
  ``StreamResult`` from multiple threads. (Robert Collins)

* New support class ``TimestampingStreamResult`` which adds a timestamp to
  events with no timestamp. (Robert Collins)

* New ``TestCase`` decorator ``DecorateTestCaseResult`` that adapts the
  ``TestResult`` or ``StreamResult`` a case will be run with, for ensuring that
  a particular result object is used even if the runner running the test doesn't
  know to use it. (Robert Collins)

* New test support class ``testtools.testresult.doubles.StreamResult``, which
  captures all the StreamResult events. (Robert Collins)

* ``PlaceHolder`` can now hold tags, and applies them before, and removes them
  after, the test. (Robert Collins)

* ``PlaceHolder`` can now hold timestamps, and applies them before the test and
  then before the outcome. (Robert Collins)

* ``StreamResultRouter`` added. This is useful for demultiplexing - e.g. for
  partitioning analysis of events or sending feedback encapsulated in
  StreamResult events back to their source. (Robert Collins)

* ``testtools.run.TestProgram`` now supports the ``TestRunner`` taking over
  responsibility for formatting the output of ``--list-tests``.
  (Robert Collins)

* The error message for setUp and tearDown upcall errors was broken on Python
  3.4. (Monty Taylor, Robert Collins, #1140688)

* The repr of object() on pypy includes the object id, which was breaking a
  test that accidentally depended on the CPython repr for object().
  (Jonathan Lange)

0 blueprints and 3 bugs targeted

Bug report Importance Assignee Status
1130429 #1130429 ConcurrentTestSuite silently eats exceptions from run(result) 2 Critical Robert Collins  10 Fix Released
1140688 #1140688 error from failing to run setup() broken on python3 2 Critical Monty Taylor  10 Fix Released
941958 #941958 python3 compatibility warning during install 4 Medium   10 Fix Released
This milestone contains Public information
Everyone can see this information.