Skip to content

Commit 5f93e86

Browse files
EricHigdonauvipy
authored andcommitted
Make sure that max_retries=0 is treated differently than None (celery#1080)
* Make sure that max_retries=0 is treated differently than None When max_retries=0, it should not retry at all instead of retrying infinitely. * retry_always should use max_retries=None instead of 0. * Added test for zero retries * Removed Offending spaces from blank line
1 parent 0ad7d08 commit 5f93e86

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

kombu/utils/functional.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ def retry_over_time(fun, catch, args=None, kwargs=None, errback=None,
342342
try:
343343
return fun(*args, **kwargs)
344344
except catch as exc:
345-
if max_retries and retries >= max_retries:
345+
if max_retries is not None and retries >= max_retries:
346346
raise
347347
if end and time() > end:
348348
raise

t/unit/utils/test_functional.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,21 @@ def test_retry_timeout(self):
226226
errback=None, timeout=1,
227227
)
228228

229+
@mock.sleepdeprived(module=utils)
230+
def test_retry_zero(self):
231+
with pytest.raises(self.Predicate):
232+
retry_over_time(
233+
self.myfun, self.Predicate,
234+
max_retries=0, errback=self.errback, interval_max=14,
235+
)
236+
assert self.index == 0
237+
# no errback
238+
with pytest.raises(self.Predicate):
239+
retry_over_time(
240+
self.myfun, self.Predicate,
241+
max_retries=0, errback=None, interval_max=14,
242+
)
243+
229244
@mock.sleepdeprived(module=utils)
230245
def test_retry_once(self):
231246
with pytest.raises(self.Predicate):
@@ -261,7 +276,7 @@ def __call__(self, *args, **kwargs):
261276

262277
assert retry_over_time(
263278
fun, self.Predicate,
264-
max_retries=0, errback=None, interval_max=14) == 42
279+
max_retries=None, errback=None, interval_max=14) == 42
265280
assert fun.calls == 11
266281

267282

0 commit comments

Comments
 (0)