Datetime mocking in tests
FreezeFrog lets you mock datetimes in tests.
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:
FreezeFrog supports both datetime and pytz timezone objects.
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.
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())
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.