Changelog
=========


2.0.7 (2022-12-23)
------------------

- Make freezer's "ignore_modules" more robust.
  [phgross]


2.0.6 (2020-05-28)
------------------

- Significantly optimize freezer's "ignore_modules" by avoiding retrieving the
  complete call stack.
  [buchi]


2.0.5 (2019-12-17)
------------------

- Stop quickinstall_uninstallation test from being skipped on Plone 5.1 [djowett-ftw]
- restore diffs for uninstall tests after removing unittest2 [djowett-ftw]


2.0.4 (2019-12-04)
------------------

- Add missing getToolByName default argument [Nachtalb]


2.0.3 (2019-11-22)
------------------

- Fix pickling of datetime while time is frozen. [buchi]


2.0.2 (2019-11-19)
------------------

- Fix super call to mock_tool. [buchi]


2.0.1 (2019-11-19)
------------------

- Fix component registry tear down in MockTestCase. [buchi]
- Rename FrozenDateTime class to FrozenDatetime to workaround poor check for
  Zope's DateTime in plone.event. [buchi]


2.0.0 (2019-11-11)
------------------

- Add support for Plone 5.2 and Python 3. [buchi]
- No longer base on plone.mocktestcase as it's not compatible with Python 3 and
  replace mocker with unittest.mock. This is a *breaking* change and may
  require amending existing tests based on ``MockTestCase``.
  [buchi]
- Reimplement freezer without forbiddenfruit and mocker. [buchi]


1.20.1 (2019-04-04)
-------------------

- Optimize "ignore_modules" to avoid unneeded stack inspections. [Rotonen]


1.20.0 (2019-01-25)
-------------------

- Add "ignore_modules" support to freezer. [jone]


1.19.2 (2018-11-05)
-------------------

- Fix in timezone aware freezing for Zope DateTime. [njohner]


1.19.1 (2018-10-23)
-------------------

- Fix invalid reST in README.rst [Nachtalb]


1.19.0 (2018-10-15)
-------------------

- Drop support for plone 4.2. [jone]
- Fix bug with getting a timezone aware "now". [njohner]


1.18.0 (2018-07-12)
-------------------

- Extend ``staticuid`` to also be a context manager. [jone]
- Also freeze ``datetime.utcnow()``. [Rotonen]


1.17.0 (2017-10-02)
-------------------

- Add ``FTWIntegrationTesting`` and ``FTWIntegrationTestCase``. [jone]

1.16.0 (2017-08-08)
-------------------

- Support Plone 5.1 for ConsoleScriptLayer. [jone]

1.15.2 (2017-07-18)
-------------------

- Freezer: keep timezone info when moving clock forward / backward. [jone]
- Freezer: Fix DST-bug in today() and time(). [jone]


1.15.1 (2017-07-04)
-------------------

- Fix savepoint simulation to cleanup savepoints. [jone]


1.15.0 (2017-07-03)
-------------------

- Add savepoint simulation to transaction interceptor. [jone]


1.14.0 (2017-06-23)
-------------------

- Do not require "Plone" egg. [jone]


1.13.0 (2017-06-20)
-------------------

- Add transaction interceptor. [jone]


1.12.0 (2017-06-19)
-------------------

- Support Plone 5.1 [mathias.leimgruber, jone]
- Remove splinter browser. Use ftw.testbrowser instead. [mathias.leimgruber, jone]
- Drop Plone 4.1 support. [jone]


1.11.0 (2016-03-31)
-------------------

- Freezer: reimplement "now" patching with forbiddenfruit.
  This fixes problems with pickling and comparison of frozen datetime objects.
  [jone]


1.10.3 (2015-10-11)
-------------------

- Freezer: disable freezing while committing to database for preventing pickling errors.
  [jone]

- Freezer bugfix: replace datetime instances when leaving freeze context manager.
  [jone]


1.10.2 (2015-07-30)
-------------------

- Added timezone(`tz`) support for "freeze".
  [phgross]


1.10.1 (2015-07-27)
-------------------

- Use "now" as default of "freeze".
  [jone]


1.10.0 (2015-05-18)
-------------------

- Update the freezed time with ``forward`` and ``backward``.
  [jone]


1.9.1 (2015-05-15)
------------------

- Fix site hook within ``staticuid`` decorated methods.
  [jone]


1.9.0 (2015-05-15)
------------------

- Add ``staticuid`` decorator for having static uids.
  [jone]


1.8.1 (2015-01-05)
------------------

- Declare missing dependency to p.a.testing
  required by the COMPONENT_REGISTRY_ISOLATION layer.
  [jone]


1.8.0 (2014-12-31)
------------------

- Implement console script testing layer.
  [jone]

- Implement TEMP_DIRECTORY testing layer.
  [jone]

- Implement COMPONENT_REGISTRY_ISOLATION layer.
  [jone]


1.7.0 (2014-09-30)
------------------

- Add patcher for disabling quickinstaller snappshotting in tests.
  [jone]


1.6.4 (2014-05-01)
------------------

- Generic Setup uninstall test: Add a second test that uses Portal Setup for
  uninstallation. This makes sure that Portal Setup uninstallation behaves the same as
  quickinstaller uninstallation.
  [deif]


1.6.3 (2014-04-30)
------------------

- Generic Setup uninstall test: Remove is_product option, since we
  require an uninstall external method which requires the package
  to be a product anyway.
  [jone]

- Generic Setup uninstall test: test that there is an uninstall external method.
  Uninstall external methods are still necessary today for properly uninstalling
  a package.
  [jone]


1.6.2 (2014-04-30)
------------------

- Generic Setup test: use quickinstaller for uninstalling.
  [jone]


1.6.1 (2014-04-29)
------------------

- Also install profile dependencies before creating a snapshot.
  [deif]


1.6.0 (2014-04-29)
------------------

- Implement Generic Setup uninstall base test.
  [jone]


1.5.2 (2014-02-09)
------------------

- Fix ``isinstance`` calls of freezed time in ``freeze`` context manager.
  [jone]


1.5.1 (2014-02-08)
------------------

- Implement ``freeze`` context manager for freezing the time.
  [jone]


1.5.0 (2013-09-24)
------------------

- AT form page object: add schemata helper methods for testing visible
  schematas and fields.
  [jone]


1.4 (2013-08-26)
----------------

- Add custom mailhost class, remembering the sender and recipient
  of each email separately.
  [deif]

- Deprecate @javascript because Selenium with PhantomJS is too unstable.
  Removes tests and documentation, the @javascript decorator still works
  for now but needs to be imported from ftw.testing.browser.
  [jone]

- Page objects: add a Plone.visit(obj) function.
  [jone]

- Fix a rare bug where the MockMailHost message list has been replaced by
  another instance.
  [jone, deif]


1.3.1 (2013-05-24)
------------------

- Move ``Mailing`` helper class to its own module ``mailing``.
  [deif]


1.3 (2013-05-03)
----------------

- Drop official Plone 4.0 support.
  [jone]

- Component registry layer: use isolated ZCML layers.
  When using the same layer instances it may conflict with integration or
  functional testing layers.
  [jone]

- Add splinter integration and Plone page objects.
  [jone]

- onegov.ch approved: add badge to readme.
  [jone]

- MockTestCase: Support Products.PloneHotfix20121106 patch when mocking getToolByName.
  [jone]

- MockTestCase: add checks that setUp is called correctly.
  [jone]


1.2 (2012-05-22)
----------------

- Add ``stub_reponse`` method to ``MockTestCase`` and adjust the
  ``stub_request`` method accordant.
  [phgross]

- Made providing interfaces configurable for the ``stub_request`` method.
  [phgross]

- Let the stub_request method also stub the getStatus of the response.
  [phgross]

- Add ``stub_request`` method to ``MockTestCase``.
  [jone]

- No longer tear down the component registry in mock test case. Use the
  ComponentRegistryLayer.
  [jone]

- Add ``ComponentRegistryLayer`` base class.
  [jone]

- Add ``mock_interface`` and ``stub_interface`` methods to MockTestCase, creating
  a mock and using the interface as spec.
  [jone]

- Accept also interfaces directly rather than lists of interfaces when
  creating mocks or stubs which provides the interfaces.
  [jone]


1.1 (2011-11-16)
----------------

- Patch mock_tool: do not count, so that it can be used multiple times.
  [jone]


1.0 (2011-10-12)
----------------

- Initial release
