在pytest中人为地提前时间
advance time artificially in pytest
我的代码取决于经过的时间(例如:如果 10 分钟过去了)
在 pytest 中模拟这个的最佳方法是什么?
模块时间的猴子补丁方法?
示例代码(测试代码 - 有点示意图但传达了信息):
current_time = datetime.datetime.utcnow()
retry_time = current_time + datetime.timedelta(minutes=10)
#time_in_db represents time extracted from DB
if time_in_db > retry_time:
#perform the retry
FreezeGun 可能是最简单的解决方案。
自述文件中的示例代码:
from freezegun import freeze_time
@freeze_time("2012-01-14")
def test():
assert datetime.datetime.now() == datetime.datetime(2012, 01, 14)
我的代码取决于经过的时间(例如:如果 10 分钟过去了)
在 pytest 中模拟这个的最佳方法是什么? 模块时间的猴子补丁方法?
示例代码(测试代码 - 有点示意图但传达了信息):
current_time = datetime.datetime.utcnow()
retry_time = current_time + datetime.timedelta(minutes=10)
#time_in_db represents time extracted from DB
if time_in_db > retry_time:
#perform the retry
FreezeGun 可能是最简单的解决方案。
自述文件中的示例代码:
from freezegun import freeze_time
@freeze_time("2012-01-14")
def test():
assert datetime.datetime.now() == datetime.datetime(2012, 01, 14)