在 freeze_time 中包装测试的 fixtures
项目描述
在 freeze_time 中包装测试的 fixtures
功能
在测试和 fixtures 中冻结时间
在需要时访问 freezer
安装
您可以通过 pip 从 PyPI 安装“pytest-freezegun”
$ pip install pytest-freezegun
使用方法
使用 freezer fixtures 冻结时间
def test_frozen_date(freezer):
now = datetime.now()
time.sleep(1)
later = datetime.now()
assert now == later
这可以用来移动时间
def test_moving_date(freezer):
now = datetime.now()
freezer.move_to('2017-05-20')
later = datetime.now()
assert now != later
您还可以通过使用 freeze_time 标记来传递 freezegun 的参数
@pytest.mark.freeze_time('2017-05-21')
def test_current_date():
assert date.today() == date(2017, 5, 21)
您可以将 freezer fixtures 和 freeze_time 标记一起使用,并且它们可以与其他 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)
它们也可以用于基于类的测试
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)
贡献
我们非常欢迎贡献。可以使用 tox 运行测试。之后,您可以使用 coverage combine && coverage html 检查覆盖率。请在提交拉取请求之前尽量保持覆盖率不变。
许可证
根据MIT许可证分发,“pytest-freezegun”是免费和开源软件
问题
如果您遇到任何问题,请提交问题,并提供详细描述。
致谢
此Pytest插件是用Cookiecutter以及@hackebrot的Cookiecutter-pytest-plugin模板生成的。
项目详情
关闭
pytest-freezegun-0.4.2.zip的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 19c82d5633751bf3ec92caa481fb5cffaac1787bd485f0df6436fd6242176949 |
|
| MD5 | ab9915f280a4e37fafc118af1311cc41 |
|
| BLAKE2b-256 | f0e3c39d7c3d3afef5652f19323f3483267d7e6b0d9911c3867e10d6e2d3c9ae |
关闭
pytest_freezegun-0.4.2-py2.py3-none-any.whl的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5318a6bfb8ba4b709c8471c94d0033113877b3ee02da5bfcd917c1889cde99a7 |
|
| MD5 | 2011ef4ce8fea964e6ca9ef3b6c41d4f |
|
| BLAKE2b-256 | 9e090bdd7d24b9d21453ad3364ae1efbd65082045bb6081b5fd5eade91a9b644 |