diff options
author | Kristján Valur Jónsson <sweskman@gmail.com> | 2022-04-28 11:16:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-28 14:16:14 +0300 |
commit | c29d158c854c659994b6d8704d4b420faaa95bca (patch) | |
tree | fe6e5ff9c6d5d611aa907115d8ec5c05581f77d5 /tests/test_retry.py | |
parent | abd5aeffc5cca02826973ab32e4d43e200eff18e (diff) | |
download | redis-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.py | 15 |
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: |