Skip to main content

Wrap tests with fixtures in freeze_time

Project description

pytest-freezeblaster

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-freezeblaster" via pip from PyPI:

$ pip install pytest-freezeblaster

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)

Credits

All credits go to ktosiek.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_freezeblaster-1.0.0.tar.gz (2.2 kB view hashes)

Uploaded Source

Built Distribution

pytest_freezeblaster-1.0.0-py3-none-any.whl (2.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page