def test_retry_method(self): task = self.tiger.delay(exception_task, retry_method=linear(DELAY, DELAY, 3)) def _run(n_executions): Worker(self.tiger).run(once=True) Worker(self.tiger).run(once=True) assert task.n_executions() == n_executions _run(1) # Retry in 1*DELAY time.sleep(DELAY) _run(2) # Retry in 2*DELAY time.sleep(DELAY) _run(2) time.sleep(DELAY) _run(3) # Retry in 3*DELAY time.sleep(DELAY) _run(3) time.sleep(DELAY) _run(3) time.sleep(DELAY) _run(4) self._ensure_queues(error={'default': 1})
def test_retry_method_linear(self): f = linear(1, 2, 3) assert f[0](1, *f[1]), 1 assert f[0](2, *f[1]), 3 assert f[0](3, *f[1]), 5 pytest.raises(StopRetry, f[0], 4, *f[1])