Skip to content

Commit

Permalink
Fix: #254 by increasing timeout, use backoff module instead of flaky (#…
Browse files Browse the repository at this point in the history
…271)

* feat: use backoff module instead of flaky

* Updates after PR review

Co-authored-by: Anthonios Partheniou <partheniou@google.com>
  • Loading branch information
nicain and parthea authored Oct 11, 2021
1 parent 05b9e18 commit 0692c9d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
2 changes: 1 addition & 1 deletion packages/google-cloud-translate/.github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@
/samples/**/*.py @googleapis/cdpe-cloudai

# The python-samples-owners team is the default owner for samples
/samples/**/*.py @telpirion @sirtorry @googleapis/python-samples-owners
/samples/**/*.py @aribray @googleapis/python-samples-owners
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import os
import uuid

import backoff
from google.cloud import storage
import pytest

Expand All @@ -25,8 +26,7 @@
GLOSSARY_ID = "DO_NOT_DELETE_TEST_GLOSSARY"


@pytest.fixture(scope="function")
def bucket():
def get_ephemeral_bucket():
"""Create a temporary bucket to store annotation output."""
bucket_name = f"tmp-{uuid.uuid4().hex}"
storage_client = storage.Client()
Expand All @@ -37,15 +37,30 @@ def bucket():
bucket.delete(force=True)


@pytest.mark.flaky(max_runs=3, min_passes=1)
@pytest.fixture(scope="function")
def bucket():
"""Create a bucket feature for testing"""
return next(get_ephemeral_bucket())


def on_backoff(invocation_dict):
"""Backoff callback; create a testing bucket for each backoff run"""
invocation_dict['kwargs']['bucket'] = next(get_ephemeral_bucket())


# If necessary, retry test function while backing off the timeout sequentially
MAX_TIMEOUT = 500


@backoff.on_exception(wait_gen=lambda : iter([100, 250, 300, MAX_TIMEOUT]), exception=Exception, max_tries=5, on_backoff=on_backoff)
def test_batch_translate_text_with_glossary(capsys, bucket):

translate_v3_batch_translate_text_with_glossary.batch_translate_text_with_glossary(
"gs://cloud-samples-data/translation/text_with_glossary.txt",
"gs://{}/translation/BATCH_TRANSLATION_GLOS_OUTPUT/".format(bucket.name),
PROJECT_ID,
GLOSSARY_ID,
320,
)
MAX_TIMEOUT)

out, _ = capsys.readouterr()
assert "Total Characters: 9" in out

0 comments on commit 0692c9d

Please sign in to comment.