diff --git a/google/cloud/pubsub_v1/publisher/client.py b/google/cloud/pubsub_v1/publisher/client.py index 9ad4a9474..c55958475 100644 --- a/google/cloud/pubsub_v1/publisher/client.py +++ b/google/cloud/pubsub_v1/publisher/client.py @@ -271,8 +271,6 @@ def publish( ordering_key: A string that identifies related messages for which publish order should be respected. Message ordering must be enabled for this client to use this feature. - EXPERIMENTAL: This feature is currently available in a closed - alpha. Please contact the Cloud Pub/Sub team to use it. retry (Optional[google.api_core.retry.Retry]): Designation of what errors, if any, should be retried. If `ordering_key` is specified, the total retry deadline will be changed to "infinity". diff --git a/samples/snippets/subscriber_test.py b/samples/snippets/subscriber_test.py index b1a23cd10..de54598a5 100644 --- a/samples/snippets/subscriber_test.py +++ b/samples/snippets/subscriber_test.py @@ -18,6 +18,7 @@ import backoff from flaky import flaky +from google.api_core.exceptions import InternalServerError from google.api_core.exceptions import NotFound from google.api_core.exceptions import Unknown from google.cloud import pubsub_v1 @@ -238,13 +239,14 @@ def test_create_subscription_with_dead_letter_policy( assert f"After {DEFAULT_MAX_DELIVERY_ATTEMPTS} delivery attempts." in out +@flaky(max_runs=3, min_passes=1) def test_receive_with_delivery_attempts( publisher_client, topic, dead_letter_topic, subscription_dlq, capsys ): # The dlq subscription raises 404 before it's ready. # We keep retrying up to 10 minutes for mitigating the flakiness. - @backoff.on_exception(backoff.expo, (Unknown, NotFound), max_time=600) + @backoff.on_exception(backoff.expo, (Unknown, NotFound), max_time=120) def run_sample(): _publish_messages(publisher_client, topic) @@ -259,13 +261,20 @@ def run_sample(): @flaky(max_runs=3, min_passes=1) def test_update_dead_letter_policy(subscription_dlq, dead_letter_topic, capsys): - _ = subscriber.update_subscription_with_dead_letter_policy( - PROJECT_ID, - TOPIC, - SUBSCRIPTION_DLQ, - DEAD_LETTER_TOPIC, - UPDATED_MAX_DELIVERY_ATTEMPTS, - ) + + # We saw internal server error that suggests to retry. + + @backoff.on_exception(backoff.expo, (Unknown, InternalServerError), max_time=60) + def run_sample(): + subscriber.update_subscription_with_dead_letter_policy( + PROJECT_ID, + TOPIC, + SUBSCRIPTION_DLQ, + DEAD_LETTER_TOPIC, + UPDATED_MAX_DELIVERY_ATTEMPTS, + ) + + run_sample() out, _ = capsys.readouterr() assert dead_letter_topic in out