

def test_retry(monkeypatch):
    mock_sleep_time = [0]

    def mock_sleep(seconds):
        mock_sleep_time[0] += seconds
    monkeypatch.setattr(time, 'sleep', mock_sleep)
    hit = [0]
    tries = 5
    delay = 1
    backoff = 2

    @retry(tries=tries, delay=delay, backoff=backoff)
    def f():
        hit[0] += 1
        (1 / 0)
    with pytest.raises(ZeroDivisionError):
        f()
    assert (hit[0] == tries)
    assert (mock_sleep_time[0] == sum(((delay * (backoff ** i)) for i in range((tries - 1)))))

dataset/ETHPy150Open invl/retry/retry/tests/test_retry.py test_retry/original