冻结日期:将 datetime.now 冻结在已知值以进行测试
项目描述
当您的测试运行时,冻结日期会暂停时间。
Frozendate 模拟datetime.datetime和datetime.date以在测试时提供已知时间。
用法
import frozendate
with frozendate.freeze(1999, 1, 1):
party_like_its_1999()
# freeze relative freezes time relative to the current date...
with freeze_relative(days=-1):
assert all_my_troubles_seemed_so_far_away()
with freeze(1999, 12, 31):
# ...or relative to the previous freeze
with freeze_relative(days=1):
print "happy new year!"
通常,当您使用 freeze 时,时间实际上并没有停止——它只是从您指定的固定点重新开始,例如:
>>> import frozendate >>> import datetime >>> with frozendate.freeze(2000, 1, 1): ... print datetime.now().replace(microsecond=0) ... time.sleep(1) ... print datetime.now().replace(microsecond=0) ... 2000-01-01 00:00:00 2000-01-01 00:00:01
但是如果你通过hard=True ,你总是可以得到相同的值:
>>> with frozendate.freeze(2000, 1, 1, hard=True): ... print datetime.now().replace(microsecond=0) ... time.sleep(1) ... print datetime.now().replace(microsecond=0) ... 2000-01-01 00:00:00 2000-01-01 00:00:00
除了上下文管理器,还有常规的补丁和取消补丁功能。这些在测试用例设置/拆卸方法中很有用:
def setUp(self):
frozendate.patch(2000, 1, 1)
def tearDown(self):
frozendate.unpatch()
当您调用 freeze 或 patch 时,它会冻结 sys.modules中找到的所有模块的时间。有时您想限制为几个命名模块:
frozendate.freeze(modules=['mypackage.mymodule'])
或者修补所有内容,但排除一些仍然需要实际日期时间的模块:
frozendate.freeze(dontpatch=['somemodule', 'someotherpackage'])
0.1.3(2018-10-10 发布)
与 dateutil 一起使用时修复异常
添加对 Python 3.7 的支持
放弃对 Python 2.6 的支持
版本 0.1.2
添加对冻结 datetime.utcnow() 的支持
版本 0.1.1
修复了与六个一起使用时的 ImportErrors
0.1版
初始发行
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
freezedate-0.1.3.tar.gz
(5.2 kB
查看哈希)
内置分布
freezedate-0.1.3-py3-none-any.whl
(6.0 kB
查看哈希)
关
freezeddate -0.1.3.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 153377d5aa475e022d4356b4835d4e9acf5309a43739bd7567f4d1cb81edd354 |
|
| MD5 | e87d02937e92692611e53b220fa2e8eb |
|
| 布莱克2-256 | ff4e788835feae7d870a45e55d72d8a313f8ccc531692b928dd793ad96882948 |
关
freezeddate -0.1.3-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5f23cc4e90781e8d4f639a9468e1403fb70121573dd4ff3cbadab0cd701a4b80 |
|
| MD5 | b8386565e6c44b157ba03de0530a05c3 |
|
| 布莱克2-256 | 9c05614de39ab3be49aa502ff8ce4911bc64ec4b1451342e31d33abf69cf127d |