4242from google .api_core import path_template
4343import google .oauth2
4444from test_utils .retry import RetryErrors
45+ from test_utils .retry import RetryInstanceState
4546from test_utils .system import unique_resource_id
4647from test_utils .vpcsc_config import vpcsc_config
4748
@@ -57,12 +58,17 @@ def _bad_copy(bad_request):
5758 return err_msg .startswith ("No file found in request. (POST" ) and "copyTo" in err_msg
5859
5960
61+ def _no_event_based_hold (blob ):
62+ return not blob .event_based_hold
63+
64+
6065retry_429 = RetryErrors (exceptions .TooManyRequests , max_tries = 6 )
6166retry_429_harder = RetryErrors (exceptions .TooManyRequests , max_tries = 10 )
6267retry_429_503 = RetryErrors (
6368 [exceptions .TooManyRequests , exceptions .ServiceUnavailable ], max_tries = 10
6469)
6570retry_bad_copy = RetryErrors (exceptions .BadRequest , error_predicate = _bad_copy )
71+ retry_no_event_based_hold = RetryInstanceState (_no_event_based_hold )
6672
6773
6874def _empty_bucket (client , bucket ):
@@ -2482,6 +2488,11 @@ def test_bucket_w_default_event_based_hold(self):
24822488 self .assertFalse (bucket .retention_policy_locked )
24832489
24842490 blob .upload_from_string (payload )
2491+
2492+ # https://github.com/googleapis/python-storage/issues/435
2493+ if blob .event_based_hold :
2494+ retry_no_event_based_hold (blob .reload )()
2495+
24852496 self .assertFalse (blob .event_based_hold )
24862497 self .assertFalse (blob .temporary_hold )
24872498 self .assertIsNone (blob .retention_expiration_time )
0 commit comments