在Python中如何对坚韧库重试进行单元测试

问题描述 投票:0回答:1

我有一个带有坚韧库重试的功能

@retry(stop=stop_after_attempt(3))
def func():
    pass

如何单元测试重试会执行3次? 谢谢

python unit-testing python-unittest retry-logic tenacity
1个回答
0
投票

首先,你的函数永远不会失败,因此永远不会触发重试(第一次尝试就成功)。我们这样修改一下:

@retry(stop=stop_after_attempt(3))
def func():
    raise RuntimeError('oops')

现在https://tenacity.readthedocs.io/en/latest/#statistics指出了方向:

import pytest
from tenacity import RetryError

def test_func_retry():
    with pytest.raises(RetryError):
        func()
    assert func.retry.statistics['attempt_number'] == 3
© www.soinside.com 2019 - 2024. All rights reserved.