Wrap tests with fixtures in freeze_time
Project description
Wrap tests with fixtures in freeze_time
Features
Freeze time in both the test and fixtures
Access the freezer when you need it
Installation
You can install “pytest-freezegun” via pip from PyPI:
$ pip install pytest-freezegun
Usage
Freeze time by using the freezer fixture:
def test_frozen_date(freezer): now = datetime.now() time.sleep(1) later = datetime.now() assert now == later
This can then be used to move time:
def test_moving_date(freezer): now = datetime.now() freezer.move_to('2017-05-20') later = datetime.now() assert now != later
You can also pass arguments to freezegun by using the freeze_time mark:
@pytest.mark.freeze_time('2017-05-21') def test_current_date(): assert date.today() == date(2017, 5, 21)
The freezer fixture and freeze_time mark can be used together, and they work with other fixtures:
@pytest.fixture def current_date(): return date.today() @pytest.mark.freeze_time def test_changing_date(current_date, freezer): freezer.move_to('2017-05-20') assert current_date == date(2017, 5, 20) freezer.move_to('2017-05-21') assert current_date == date(2017, 5, 21)
They can also be used in class-based tests:
class TestDate: @pytest.mark.freeze_time def test_changing_date(self, current_date, freezer): freezer.move_to('2017-05-20') assert current_date == date(2017, 5, 20) freezer.move_to('2017-05-21') assert current_date == date(2017, 5, 21)
Contributing
Contributions are very welcome. Tests can be run with tox. You can later check coverage with coverage combine && coverage html. Please try to keep coverage at least the same before you submit a pull request.
License
Distributed under the terms of the MIT license, “pytest-freezegun” is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
Credits
This Pytest plugin was generated with Cookiecutter along with @hackebrot’s Cookiecutter-pytest-plugin template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_freezegun-0.4.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5318a6bfb8ba4b709c8471c94d0033113877b3ee02da5bfcd917c1889cde99a7 |
|
MD5 | 2011ef4ce8fea964e6ca9ef3b6c41d4f |
|
BLAKE2b-256 | 9e090bdd7d24b9d21453ad3364ae1efbd65082045bb6081b5fd5eade91a9b644 |