From ebf1b8fd2d6e65bf406a9f362ab65d0efd06109b Mon Sep 17 00:00:00 2001 From: qsmr Date: Tue, 30 Mar 2021 18:12:06 +0200 Subject: [PATCH 1/3] fix: Retry.with_retry setting None multiplier --- google/api_core/retry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/api_core/retry.py b/google/api_core/retry.py index 592d34fa..43e4f079 100644 --- a/google/api_core/retry.py +++ b/google/api_core/retry.py @@ -345,7 +345,7 @@ def with_delay(self, initial=None, maximum=None, multiplier=None): predicate=self._predicate, initial=initial if initial is not None else self._initial, maximum=maximum if maximum is not None else self._maximum, - multiplier=multiplier if maximum is not None else self._multiplier, + multiplier=multiplier if multiplier is not None else self._multiplier, deadline=self._deadline, on_error=self._on_error, ) From 30f811ab8d311f72de693c10bd82bbcbc258ae35 Mon Sep 17 00:00:00 2001 From: qsmr Date: Wed, 31 Mar 2021 18:05:54 +0200 Subject: [PATCH 2/3] test: Update test_with_delay assertion --- tests/unit/test_retry.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/unit/test_retry.py b/tests/unit/test_retry.py index a0160e90..9e0b3499 100644 --- a/tests/unit/test_retry.py +++ b/tests/unit/test_retry.py @@ -246,11 +246,11 @@ def test_with_delay(self): deadline=4, on_error=mock.sentinel.on_error, ) - new_retry = retry_.with_delay(initial=1, maximum=2, multiplier=3) + new_retry = retry_.with_delay(initial=5, maximum=6, multiplier=7) assert retry_ is not new_retry - assert new_retry._initial == 1 - assert new_retry._maximum == 2 - assert new_retry._multiplier == 3 + assert new_retry._initial == 5 + assert new_retry._maximum == 6 + assert new_retry._multiplier == 7 # the rest of the attributes should remain the same assert new_retry._deadline == retry_._deadline From ae1e181f73e1e60b8a2dc3ae1a794e024fc59467 Mon Sep 17 00:00:00 2001 From: qsmr Date: Wed, 31 Mar 2021 18:06:48 +0200 Subject: [PATCH 3/3] test: Add retry.with_delay test with partial options --- tests/unit/test_retry.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/unit/test_retry.py b/tests/unit/test_retry.py index 9e0b3499..4c2e457a 100644 --- a/tests/unit/test_retry.py +++ b/tests/unit/test_retry.py @@ -257,6 +257,38 @@ def test_with_delay(self): assert new_retry._predicate is retry_._predicate assert new_retry._on_error is retry_._on_error + def test_with_delay_partial_options(self): + retry_ = retry.Retry( + predicate=mock.sentinel.predicate, + initial=1, + maximum=2, + multiplier=3, + deadline=4, + on_error=mock.sentinel.on_error, + ) + new_retry = retry_.with_delay(initial=4) + assert retry_ is not new_retry + assert new_retry._initial == 4 + assert new_retry._maximum == 2 + assert new_retry._multiplier == 3 + + new_retry = retry_.with_delay(maximum=4) + assert retry_ is not new_retry + assert new_retry._initial == 1 + assert new_retry._maximum == 4 + assert new_retry._multiplier == 3 + + new_retry = retry_.with_delay(multiplier=4) + assert retry_ is not new_retry + assert new_retry._initial == 1 + assert new_retry._maximum == 2 + assert new_retry._multiplier == 4 + + # the rest of the attributes should remain the same + assert new_retry._deadline == retry_._deadline + assert new_retry._predicate is retry_._predicate + assert new_retry._on_error is retry_._on_error + def test___str__(self): def if_exception_type(exc): return bool(exc) # pragma: NO COVER