def test_resource_throttle_retry_policy_default_retry_after(self): connection_policy = Test_retry_policy_tests.connectionPolicy connection_policy.RetryOptions = retry_options.RetryOptions(5) client = cosmos_client.CosmosClient( Test_retry_policy_tests.host, {'masterKey': Test_retry_policy_tests.masterKey}, connection_policy) self.OriginalExecuteFunction = retry_utility._ExecuteFunction retry_utility._ExecuteFunction = self._MockExecuteFunction document_definition = { 'id': 'doc', 'name': 'sample document', 'key': 'value' } try: client.CreateItem(self.created_collection['_self'], document_definition) except errors.HTTPFailure as e: self.assertEqual(e.status_code, StatusCodes.TOO_MANY_REQUESTS) self.assertEqual( connection_policy.RetryOptions.MaxRetryAttemptCount, client.last_response_headers[HttpHeaders.ThrottleRetryCount]) self.assertGreaterEqual( client.last_response_headers[ HttpHeaders.ThrottleRetryWaitTimeInMs], connection_policy.RetryOptions.MaxRetryAttemptCount * self.retry_after_in_milliseconds) retry_utility._ExecuteFunction = self.OriginalExecuteFunction
def test_resource_throttle_retry_policy_default_retry_after(self): connection_policy = Test_retry_policy_tests.connectionPolicy connection_policy.RetryOptions = retry_options.RetryOptions(5) self.OriginalExecuteFunction = retry_utility._ExecuteFunction try: retry_utility._ExecuteFunction = self._MockExecuteFunction document_definition = { 'id': 'doc', 'name': 'sample document', 'key': 'value' } try: self.created_collection.create_item(body=document_definition) except errors.HTTPFailure as e: self.assertEqual(e.status_code, StatusCodes.TOO_MANY_REQUESTS) self.assertEqual( connection_policy.RetryOptions.MaxRetryAttemptCount, self.created_collection.client_connection. last_response_headers[HttpHeaders.ThrottleRetryCount]) self.assertGreaterEqual( self.created_collection.client_connection. last_response_headers[ HttpHeaders.ThrottleRetryWaitTimeInMs], connection_policy.RetryOptions.MaxRetryAttemptCount * self.retry_after_in_milliseconds) finally: retry_utility._ExecuteFunction = self.OriginalExecuteFunction
def __init__(self): self.RequestTimeout = self.__defaultRequestTimeout self.MediaRequestTimeout = self.__defaultMediaRequestTimeout self.ConnectionMode = ConnectionMode.Gateway self.MediaReadMode = MediaReadMode.Buffered self.SSLConfiguration = None self.ProxyConfiguration = None self.EnableEndpointDiscovery = True self.PreferredLocations = [] self.RetryOptions = retry_options.RetryOptions() self.DisableSSLVerification = False self.UseMultipleWriteLocations = False