如何解决使用 Pytest 测试超时
所以最近我一直在学习如何使用 pytest 编写测试,但我提出了一个问题:
我有一个 Web 应用程序,它创建一个带有超时的令牌。有一个函数每 5 秒重复一次,它检查创建的每个令牌。如果时间到了,令牌将被删除。它有效,但我需要为它创建一个测试,这就是我卡住的地方。
目前,我的想法是简单地运行断言,等待 6 秒,然后使用不同的断言再次运行它,但 time.sleep() 函数似乎也停止了我的令牌检查器的计时器,所以它真的不适合我。有人有什么想法吗?
main.py:
@repeat_every(seconds=1 * 5)
def timeout_check():
for mutex_id in list(mutexes):
if mutexes[mutex_id].expire_datetime < datetime.now().astimezone():
del mutexes[mutex_id]
test.py:
def test_timeout_check_delete_inuse():
payload = {
"token": "timeout_check_inuse","timeout": 2,}
tid = res.json()["id"]
res = client.get("/muted/mutexes/%s" % tid)
assert res.status_code == 200
time.sleep(6)
res = client.get("/muted/mutexes/%s" % tid)
assert res.status_code == 404
任何建议/想法都有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。