=========================
Change log for tl.testing
=========================


0.5 (2012-01-04)
================

- Added ``tl.testing.thread`` providing thread classes that handle or report
  exceptions as well as a thread-aware test case class that provides reporting
  on threads left behind by tests and some conveniences for using threads in
  test code.

- Dropped compatibility with Python 2.5 by introducing a context manager for
  joining threads.

- Added ``tl.testing.doctest`` providing a ``DocFileSuite`` factory which is
  compatible to that of standard doctest but uses pypi:`manuel` and allows for
  some manuel-related additional configuration. Always require :pypi:`manuel`,
  removed the ``cairo`` extra requirements.

- Fixed :bbissue:`5`: Shield test runs that are the subject of this package's
  tests from options passed to runs of this package's test suite itself.

- Changed this package's own tests to use the stock ``unittest`` test runner
  instead of the Zope test runner. Since this caused changes in doc-test
  counting, use mocks to make clearer whether certain tests are executed.
  Requires the pypi:`mock` package.

- Updated code and development environment to newer versions of packages: no
  longer use deprecated ``zope.testing.doctest``, build with more recent
  :pypi:`tl.buildout_gtk`.

- Keep buildout.cfg under version control instead of base.cfg, expect
  overriding to happen in local.cfg.

- Updated to using :pypi:`Sphinx (1.1)` for building the documentation,
  require graphviz to create class inheritance diagrams, require
  :pypi:`sphinxcontrib-bitbucket` to generate links to bitbucket issues and
  :pypi:`sphinxcontrib-cheeseshop` to generate links to packages' PyPI pages.
  Use a global table of contents in the sidebar. Added the technically
  detailed doc-tests to the Sphinx docs.

- Temporarily ignore import errors for the cairo C module to allow the full
  API docs to be built at `Read the Docs`_.

.. _Read the Docs: http://tltesting.readthedocs.org/


0.4 (2009-09-14)
================

Cairo testing:
  - Updated to using manuel 1.0.0b3, restoring Python 2.5 compatibility.

  - Allowed for text in addition to the expression in figure captions, as well
    as multi-line captions.

  - Interpret an option for excluding one or more rectangular areas of a
    surface from comparison with the expected image.


0.3 (2009-07-23)
================

Cairo testing:
  - Updated to using manuel 1.0.0b2, implying the requirement of Python 2.6
    and a refactoring of the DocFileSuite that loses encoding support.

  - Improved the behaviour in the case that a result cannot be written to an
    image file.

  - Write the test result to an image file also in the case that the expected
    image cannot be loaded.

  - Disallowed absolute image paths as they would only work on Unix-like
    systems because of the requirement to use / as the path separator.

  - Fixed DocFileSuite to accept multiple test file names, renamed the
    ``manuel_object`` parameter to just ``manuel``, only include the doc test,
    footnote and cairo Manuels by default.

  - Require a cairo.ImageSurface instead of a Surface as the value of an
    example's Python expression.

  - Report ImageSurface format mismatches, avoid false mismatches with
    FORMAT_RGB24 surfaces.

Organisation:
  - Moved the project to the Mercurial version control system.

  - Build documentation using Sphinx.

  - Improved documentation, in particular added doc strings to the code.


0.2.2 (2009-06-24)
==================

- Updated to using the manuel 1.0.0b1 API.

- Made the cairo test runner recognize the CAIRO_TEST_RESULTS environment
  variable as a place to dump failed test results as png images.


0.2.1 (2009-06-09)
==================

- Use new ``manuel.codeblock`` functionality in cairo image doc-testing.

- Simplified the cairo testing code a little due to a bug fix in manuel.


0.2 (2009-05-15)
================

- Added a manuel test runner that compares cairo surfaces to images included
  as ReST figures in doc test files.


0.1 (2008-11-11)
================

initial release


.. Local Variables:
.. mode: rst
.. End:
