=======================
 pyutilib.th CHANGELOG
=======================

-------------------------------------------------------------------------------
 Version 5.5
-------------------------------------------------------------------------------

- Next release

-------------------------------------------------------------------------------
 Version 5.4.2
-------------------------------------------------------------------------------

- Adding another import guard for psutil: NotImplementedError is
  raised on import in certain situations (e.g., when using cx_Freeze)

-------------------------------------------------------------------------------
 Version 5.4.1
-------------------------------------------------------------------------------

- Changes to ensure that absolute filenames are used.

-------------------------------------------------------------------------------
 Version 5.4
-------------------------------------------------------------------------------

- Adding comparison test for XML baseline files.

-------------------------------------------------------------------------------
 Version 5.3
-------------------------------------------------------------------------------

- Portability changes for Python 3.x

- Skipping GZ tests in 3.1 and 3.2. I don't know of a generic way of unencoding 
  GZ text that is not buggy.

-------------------------------------------------------------------------------
 Version 5.2
-------------------------------------------------------------------------------

- Fix so that if compare_file() finds a diff and one or more of the
  files was compressed, the resulting unified_diff output is also
  performed on uncompressed files.

  This should both create more intelligible results and prevent Jenkins
  from failing the entire build.

- Remove temporary cmd files used for testing.

- Migrating comparison testing functions out of pyutilib.th

- Adding tolerance parameter to various testing utilities.

- Adding method to support the comparison tests with json baseline files.

- When adding tests, convert the test name to an ascii string.

-------------------------------------------------------------------------------
 Version 5.1
-------------------------------------------------------------------------------

- Removing a strong dependency on psutil. We've seen problems with this
  installing on some platforms. Although we want to make packages
  dependent on pyutilib.th, this dependency is not critical for core
  pyutilib.th performance.

- Using 2to3 to convert files for Python 3.x

- Removing deprecated test methods.

- Updates to add_baseline_test(), add_import_test():
  - the working directory for tests defaults to the directory where
    the test is defined (instead of the directory where nose is invoked
    from).
  - more robust restoration of the original working directory in the
    presence of test failures
  - improved autogenerated docstring

- Corrections to the --with-testdata example

-------------------------------------------------------------------------------
 Version 5.0
-------------------------------------------------------------------------------

- Added the ForcedGC nose plugin, which forces garbage collection between
  tests.

- Added the TestTimeout nose plugin, which enforces a time limit for tests.

- Added a wiki page for pyutilib.th

- Added a wiki page describing how pyutilib.th can place a central role in 
  non-Pythonic testing.

- Changed the API of dynamically created function tests, to allow function
  tests that do now involve a suite name.

- Added the get_options() method to TestCase, to better encapsulate the
  mechanism used to pass optional data into dynamically created tests.

- Changed the API for baseline function tests. Now, the function is expected to return a
  list of files, the first of which is the output file that is compared.

- Added the 'filter' argument to baseline function tests.

- Changed the add_import_test argument 'dir' to 'cwd'.

-------------------------------------------------------------------------------
 Version 4.7
-------------------------------------------------------------------------------

- Adding a YAML comparison method.

- Reformatting with reindent.

-------------------------------------------------------------------------------
 Version 4.6
-------------------------------------------------------------------------------

- Changed tests to eliminate the use of deprecated 'fail*' syntax.

- Changes to allow debugging logs to be optimized out.

-------------------------------------------------------------------------------
 Version 4.5
-------------------------------------------------------------------------------

- Added logic to allow for comparisons with ZIP or GZIP compressed
  files.

- Eliminating the use of filecmp.cmp, which doesn't do as careful comparison
  of the os.stat() information.

- Throw an exception if ZIP files are used for baseline files in Python 2.5 or
  earlier.  The zip utility in Python did not have handy utility functions
  in those earlier version.

- Added a NOSE plugin that records test data in a file.

- Added functionality to record test data from a unittest test.

- Adding support to specify the format of the test data table.  If HUDSON
  environment variables are present, then these tables prepend this info
  to the test data lines.

- Added the 'tags' attribute to categorized tests.  This allows NOSE to 
  control the execution of these tests with the 'attr' plugin.

-------------------------------------------------------------------------------
 Version 4.4
-------------------------------------------------------------------------------

- Adding 'cwd' option to add_baseline_test.

- Adding a 'cmdfile' option, which generates a command-file that replicates
the execution of the command used in a baseline test.

-------------------------------------------------------------------------------
 Version 4.3.1
-------------------------------------------------------------------------------

- Resolved a portability issue that caused problems in Python 2.7

-------------------------------------------------------------------------------
 Version 4.3
-------------------------------------------------------------------------------

- Extending filtering semantics in baseline tests.  Perform filtering
  before and after 'ignored' characters are removed.

-------------------------------------------------------------------------------
 Version 4.2.1
-------------------------------------------------------------------------------

- Adding dependency on pyutilib.misc for installation.

-------------------------------------------------------------------------------
 Version 4.2
-------------------------------------------------------------------------------

- Added a 'category' decorator that can be used to filter tests based on
  specified categories.  The PYUTILIB_UNITTEST_CATEGORIES environmental
  variable is used to specify categories of tests that will be run.  If
  this environment is not specified, then this decorator is ignored.

- Adding logic to perform tests with module imports.

- Adding documentation strings to describe automatically generated
  tests in verbose output mode.

-------------------------------------------------------------------------------
 Version 4.1
-------------------------------------------------------------------------------

- Adding suite name in the specification of the
  test function that is added. This is used to index function options
  (in pyutilib.autotest).  NOTE: this is an optional argument, but in
  practice I think it's a good idea to use this.

- Adding a dummy nottest function here (when 'nose' is not
  available).

-------------------------------------------------------------------------------
 Version 4.0
-------------------------------------------------------------------------------

- Added explicit support for options management when setting function tests.

- Allow function tests to return None, which indicates that the test has
  passed.

- Decorating the methods used to add tests dynamically as classmethod()
  rather than staticmethod(). This allows the class object to be passed
  into the method, which is used to specify the class object that is
  augmented.  Previously, there was a bug where the TestCase? class
  was augmented, rather than the subclass of TestCase? that the user
  has defined.

- Extending the API of the methods used to add tests dynamically. Now,
  the TestCase instance is passed in as the first argument.

-------------------------------------------------------------------------------
 Version 3.1.1
-------------------------------------------------------------------------------

- Generalized the behavior of the filter operation when doing baseline
  comparisons. Now, either the baseline or the output file will
  be filtered independently. The resulting sequence of lines will be compared
  exactly.

-------------------------------------------------------------------------------
 Version 3.1
-------------------------------------------------------------------------------

- Extending pyunit functionality to employ the 'unittest2' package if
  it is available and the Python version is below 2.7. This exposes
  methods for skipping tests and checking for expected failures.

-------------------------------------------------------------------------------
 Version 3.0
-------------------------------------------------------------------------------

- Initial release PyUtilib to create the pyutilib.th package.

- See pyutilib.dist for previous ChangeLog information related to PyUtilib.

