在pytest人工推进时间

时间:2015-10-15 13:48:22

标签: python 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

1 个答案:

答案 0 :(得分:8)

FreezeGun可能是最简单的解决方案。

自述文件中的示例代码:

from freezegun import freeze_time

@freeze_time("2012-01-14")
def test():
    assert datetime.datetime.now() == datetime.datetime(2012, 01, 14)