我的代码取决于已用时间(例如:如果已经过了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
答案 0 :(得分:8)
FreezeGun可能是最简单的解决方案。
自述文件中的示例代码:
from freezegun import freeze_time
@freeze_time("2012-01-14")
def test():
assert datetime.datetime.now() == datetime.datetime(2012, 01, 14)