Skip to content

Commit c6fda93

Browse files
committed
use eventually consistent
1 parent 3a3d313 commit c6fda93

File tree

1 file changed

+26
-35
lines changed

1 file changed

+26
-35
lines changed

kms/api-client/snippets_test.py

Lines changed: 26 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626
import snippets
2727

28+
from gcp_devrel.testing import eventually_consistent
29+
2830

2931
def create_key_helper(key_id, purpose, algorithm, t):
3032
try:
@@ -68,7 +70,6 @@ class TestKMSSnippets:
6870
parent = 'projects/{}/locations/{}'.format(project_id, location)
6971
keyring_path = '{}/keyRings/{}'.format(parent, keyring_id)
7072
version = '1'
71-
try_limit = 10
7273

7374
symId = 'symmetric'
7475

@@ -178,47 +179,37 @@ def test_key_policy(self):
178179
self.symId,
179180
self.member,
180181
self.role)
181-
try_number = 0
182-
policy = None
183-
while policy is None and try_number < self.try_limit:
184-
try:
185-
time.sleep(2*try_number)
186-
policy = snippets.get_crypto_key_policy(self.project_id,
187-
self.location,
188-
self.keyring_id,
189-
self.symId)
190-
except Aborted:
191-
# aborted by backend. Try again
192-
try_number += 1
193-
found = False
194-
for b in list(policy.bindings):
195-
if b.role == self.role and self.member in b.members:
196-
found = True
197-
assert found
182+
183+
@eventually_consistent.call(exceptions=[Aborted, AssertionError])
184+
def _():
185+
policy = snippets.get_crypto_key_policy(self.project_id,
186+
self.location,
187+
self.keyring_id,
188+
self.symId)
189+
found = False
190+
for b in list(policy.bindings):
191+
if b.role == self.role and self.member in b.members:
192+
found = True
193+
assert found
198194
# remove member
199195
snippets.remove_member_from_crypto_key_policy(self.project_id,
200196
self.location,
201197
self.keyring_id,
202198
self.symId,
203199
self.member,
204200
self.role)
205-
try_number = 0
206-
policy = None
207-
while policy is None and try_number < self.try_limit:
208-
try:
209-
time.sleep(2*try_number)
210-
policy = snippets.get_crypto_key_policy(self.project_id,
211-
self.location,
212-
self.keyring_id,
213-
self.symId)
214-
except Aborted:
215-
# aborted by backend. Try again
216-
try_number += 1
217-
found = False
218-
for b in list(policy.bindings):
219-
if b.role == self.role and self.member in b.members:
220-
found = True
221-
assert not found
201+
202+
@eventually_consistent.call(exceptions=[Aborted, AssertionError])
203+
def _():
204+
policy = snippets.get_crypto_key_policy(self.project_id,
205+
self.location,
206+
self.keyring_id,
207+
self.symId)
208+
found = False
209+
for b in list(policy.bindings):
210+
if b.role == self.role and self.member in b.members:
211+
found = True
212+
assert not found
222213

223214
def test_symmetric_encrypt_decrypt(self):
224215
cipher_bytes = snippets.encrypt_symmetric(self.project_id,

0 commit comments

Comments
 (0)