Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pytest-freezegun

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pytest-freezegun

Wrap tests with fixtures in freeze_time

  • 0.4.2
  • PyPI
  • Socket score

Maintainers
1

================ pytest-freezegun

.. image:: https://img.shields.io/pypi/v/pytest-freezegun.svg :target: https://pypi.python.org/pypi/pytest-freezegun/

.. image:: https://travis-ci.org/ktosiek/pytest-freezegun.svg?branch=master :target: https://travis-ci.org/ktosiek/pytest-freezegun :alt: See Build Status on Travis CI

.. image:: https://ci.appveyor.com/api/projects/status/github/ktosiek/pytest-freezegun?branch=master&svg=true :target: https://ci.appveyor.com/project/ktosiek/pytest-freezegun/branch/master :alt: See Build Status on AppVeyor

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.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter .. _@hackebrot: https://github.com/hackebrot .. _MIT: http://opensource.org/licenses/MIT .. _cookiecutter-pytest-plugin: https://github.com/pytest-dev/cookiecutter-pytest-plugin .. _file an issue: https://github.com/ktosiek/pytest-freezegun/issues .. _pytest: https://github.com/pytest-dev/pytest .. _tox: https://tox.readthedocs.io/en/latest/ .. _pip: https://pypi.python.org/pypi/pip/ .. _PyPI: https://pypi.python.org/pypi

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc