summaryrefslogtreecommitdiff
path: root/tests/test_retry.py
diff options
context:
space:
mode:
authorKristján Valur Jónsson <sweskman@gmail.com>2022-04-28 11:16:14 +0000
committerGitHub <noreply@github.com>2022-04-28 14:16:14 +0300
commitc29d158c854c659994b6d8704d4b420faaa95bca (patch)
treefe6e5ff9c6d5d611aa907115d8ec5c05581f77d5 /tests/test_retry.py
parentabd5aeffc5cca02826973ab32e4d43e200eff18e (diff)
downloadredis-py-c29d158c854c659994b6d8704d4b420faaa95bca.tar.gz
`Retry()`: Support negative `retries` value (#2110)
* Support negative `retries` value * Add unit test * Add unittest for blocking api
Diffstat (limited to 'tests/test_retry.py')
-rw-r--r--tests/test_retry.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/test_retry.py b/tests/test_retry.py
index 0094787..f844fd0 100644
--- a/tests/test_retry.py
+++ b/tests/test_retry.py
@@ -95,6 +95,11 @@ class TestRetry:
def _fail(self, error):
self.actual_failures += 1
+ def _fail_inf(self, error):
+ self.actual_failures += 1
+ if self.actual_failures == 5:
+ raise ConnectionError()
+
@pytest.mark.parametrize("retries", range(10))
def test_retry(self, retries):
backoff = BackoffMock()
@@ -107,6 +112,16 @@ class TestRetry:
assert backoff.reset_calls == 1
assert backoff.calls == retries
+ def test_infinite_retry(self):
+ backoff = BackoffMock()
+ # specify infinite retries, but give up after 5
+ retry = Retry(backoff, -1)
+ with pytest.raises(ConnectionError):
+ retry.call_with_retry(self._do, self._fail_inf)
+
+ assert self.actual_attempts == 5
+ assert self.actual_failures == 5
+
@pytest.mark.onlynoncluster
class TestRedisClientRetry: