Skip to content

Commit 48452b7

Browse files
authored
Harden bucket teardown against '429 Too Many Requests'. (googleapis#6101)
Closes googleapis#6096.
1 parent 7222def commit 48452b7

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

bigquery/tests/system.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,17 @@
4040
IPython = None
4141

4242
from google.api_core.exceptions import PreconditionFailed
43+
from google.api_core.exceptions import BadRequest
44+
from google.api_core.exceptions import Conflict
45+
from google.api_core.exceptions import Forbidden
46+
from google.api_core.exceptions import NotFound
47+
from google.api_core.exceptions import TooManyRequests
4348
from google.cloud import bigquery
44-
from google.cloud.bigquery.dataset import Dataset, DatasetReference
49+
from google.cloud.bigquery.dataset import Dataset
50+
from google.cloud.bigquery.dataset import DatasetReference
4551
from google.cloud.bigquery.table import Table
4652
from google.cloud._helpers import UTC
4753
from google.cloud.bigquery import dbapi
48-
from google.cloud.exceptions import BadRequest, Forbidden, NotFound
4954
from google.cloud import storage
5055

5156
from test_utils.retry import RetryErrors
@@ -135,19 +140,16 @@ def setUp(self):
135140
self.to_delete = []
136141

137142
def tearDown(self):
138-
from google.cloud.storage import Bucket
139-
from google.cloud.exceptions import BadRequest
140-
from google.cloud.exceptions import Conflict
141143

142144
def _still_in_use(bad_request):
143145
return any(error['reason'] == 'resourceInUse'
144146
for error in bad_request._errors)
145147

146148
retry_in_use = RetryErrors(BadRequest, error_predicate=_still_in_use)
147-
retry_409 = RetryErrors(Conflict)
149+
retry_409_429 = RetryErrors((Conflict, TooManyRequests))
148150
for doomed in self.to_delete:
149-
if isinstance(doomed, Bucket):
150-
retry_409(doomed.delete)(force=True)
151+
if isinstance(doomed, storage.Bucket):
152+
retry_409_429(doomed.delete)(force=True)
151153
elif isinstance(doomed, (Dataset, bigquery.DatasetReference)):
152154
retry_in_use(Config.CLIENT.delete_dataset)(
153155
doomed, delete_contents=True)

0 commit comments

Comments
 (0)