gpt4 book ai didi

在 Python/Flask 中测试计划任务

转载 作者:行者123 更新时间:2023-11-28 21:02:15 25 4
gpt4 key购买 nike

我正在构建一个小型 Flask 应用程序,它会每隔一段时间运行一次作业,比如每月一次。为此,我正在使用 apschduler。有没有办法为此设置测试?我正在使用 py.test。

类似于:

def test_cron(self, app):
wait(months=1)
assert cron_has_run

有什么建议吗?

最佳答案

您不需要测试作业是否实际运行,因为它由已经过测试的 apscheduler 处理。相反,测试任务本身并测试您是否按预期安排了它。

您可以使用 get_jobs 检查计划的作业.如果您想测试您是否正确安排了一项工作,请安排它,然后在列表中找到它的工作。例如,您可以测试 next_run_time 是否过了一个月。

for job in get_jobs():
if name != 'name of job you care about':
continue

assert job.next_run_time >= datetime.utcnow() + timedelta(days=30)
assert job.next_run_time <= datetime.utcnow() + timedelta(days=32)

如果您对 apscheduler 如何测试其调度程序感兴趣,可以查看代码:https://github.com/agronholm/apscheduler/blob/master/tests/test_schedulers.py .它使用过去的模拟和日期。

关于在 Python/Flask 中测试计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42984546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com