semvec/pypi-packages huggingface dataset:
freezefrog 0.4.1
Datetime mocking in tests
License: MIT

==========
FreezeFrog
==========
.. image:: https://circleci.com/gh/closeio/freezefrog/tree/master.svg?style=svg&circle-token=010565a97316df8a248f0f32d584357021a3873b
    :target: https://circleci.com/gh/closeio/freezefrog/tree/master

*FreezeFrog* lets you mock datetimes in tests.

(Interested in working on projects like this? `Close.io`_ is looking for `great engineers`_ to join our team.)

.. _Close.io: http://close.io
.. _great engineers: http://jobs.close.io

.. contents:: Contents

Why FreezeFrog?
---------------

FreezeFrog is a Python library that lets you mock datetimes in tests. Its goal
is to be simple and fast.

* In comparison to certain other time freezing libraries, FreezeFrog doesn't
  loop through all imported modules, making it fast even for larger projects.

* FreezeFrog currently supports mocking the following basic methods:

  * ``datetime.datetime.now``

  * ``datetime.datetime.utcnow``

  * ``time.time``

* FreezeFrog supports both ``datetime`` and ``pytz`` timezone objects.

Usage
-----

Use the ``FreezeTime`` context manager to freeze the time. Pass the desired
``datetime`` object to the constructor, and the timezone to mock the system's
timezone (defaults to `datetime.timzone.utc`). The constructor also takes the
``fold`` argument (``0`` by default), which defines whether an ambiguous time
refers to its first or second appearance, and the ``tick`` argument
(``False`` by default), which makes the clock start ticking.

.. code:: python

  import datetime

  from freezefrog import FreezeTime

  with FreezeTime(datetime.datetime(2014, 1, 1)):
      # The clock is frozen.
      # Always prints 2014-01-01 00:00:00
      print(datetime.datetime.utcnow())

  with FreezeTime(datetime.datetime(2014, 1, 1), tick=True):
      # The clock starts ticking immediately.
      # Example output: 2014-01-01 00:00:00.000005
      print(datetime.datetime.utcnow())