gpt4 book ai didi

python 坚韧重试,为单元测试禁用 `wait`

转载 作者:太空狗 更新时间:2023-10-30 00:01:20 26 4
gpt4 key购买 nike

我正在使用 tenacity库使用它的 @retry 装饰器。

我正在使用它来制作一个函数,在失败的情况下使 HTTP 请求“重复”多次。

这是一个简单的代码片段:

@retry(stop=stop_after_attempt(7), wait=wait_random_exponential(multiplier=1, max=60))
def func():
...
requests.post(...)

该函数使用 tenacity wait 参数在调用之间等待一段时间。

该函数与 @retry 装饰器一起使用似乎工作正常。

但我还有一个单元测试,它检查函数在失败的情况下是否确实被调用了 7 次。由于两次尝试之间的等待,此测试需要花费大量时间。

是否可以仅在单元测试中以某种方式禁用等待时间?

最佳答案

解决方案来自这个 Github 问题中坚韧的维护者本人:https://github.com/jd/tenacity/issues/106

您可以简单地临时更改等待函数以进行单元测试:

from tenacity import wait_none

func.retry.wait = wait_none()

关于python 坚韧重试,为单元测试禁用 `wait`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47906671/

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