def test_wrap_method_with_default_retry_and_timeout(unusued_sleep):
    method = mock.Mock(spec=['__call__'],
                       side_effect=[exceptions.InternalServerError(None), 42])
    default_retry = retry.Retry()
    default_timeout = timeout.ConstantTimeout(60)
    wrapped_method = google.api.core.gapic_v1.method.wrap_method(
        method, default_retry, default_timeout)

    result = wrapped_method()

    assert result == 42
    assert method.call_count == 2
    method.assert_called_with(timeout=60, metadata=mock.ANY)
def test_wrap_method_with_overriding_retry_deadline(unusued_sleep):
    method = mock.Mock(
        spec=['__call__'],
        side_effect=([exceptions.InternalServerError(None)] * 3) + [42])
    default_retry = retry.Retry()
    default_timeout = timeout.ExponentialTimeout(deadline=60)
    wrapped_method = google.api.core.gapic_v1.method.wrap_method(
        method, default_retry, default_timeout)

    # Overriding only the retry's deadline should also override the timeout's
    # deadline.
    result = wrapped_method(retry=default_retry.with_deadline(30))

    assert result == 42
    timeout_args = [call[1]['timeout'] for call in method.call_args_list]
    assert timeout_args == [5, 10, 20, 29]
Example #3
0
def test_if_transient_error():
    assert retry.if_transient_error(exceptions.InternalServerError(''))
    assert retry.if_transient_error(exceptions.TooManyRequests(''))
    assert not retry.if_transient_error(exceptions.InvalidArgument(''))