|
12 | 12 | # See the License for the specific language governing permissions and |
13 | 13 | # limitations under the License. |
14 | 14 |
|
| 15 | +from mock import MagicMock, patch |
15 | 16 | from base import SDKTestBase |
| 17 | +from aliyunsdkcore.client import AcsClient |
| 18 | +from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest |
| 19 | +from aliyunsdkcore.acs_exception.exceptions import ClientException |
| 20 | +import aliyunsdkcore.acs_exception.error_code as error_code |
16 | 21 |
|
17 | 22 |
|
18 | 23 | class RetryTest(SDKTestBase): |
19 | 24 |
|
20 | | - pass |
| 25 | + def test_no_retry(self): |
| 26 | + |
| 27 | + client = AcsClient(self.access_key_id, self.access_key_secret, self.region_id, |
| 28 | + auto_retry=False) |
| 29 | + request = DescribeInstancesRequest() |
| 30 | + request.set_endpoint("somewhere.you.will.never.get") |
| 31 | + with patch.object(client, "_handle_single_request") as monkey: |
| 32 | + try: |
| 33 | + client.do_action_with_exception(request) |
| 34 | + assert False |
| 35 | + except ClientException as e: |
| 36 | + self.assertEqual(error_code.SDK_HTTP_ERROR, e.get_error_code()) |
| 37 | + self.assertEqual(1, monkey.call_count) |
| 38 | + |
| 39 | + def test_default_retry(self): |
| 40 | + client = AcsClient(self.access_key_id, self.access_key_secret, self.region_id) |
| 41 | + request = DescribeInstancesRequest() |
| 42 | + request.set_endpoint("somewhere.you.will.never.get") |
| 43 | + with patch.object(client, "_handle_single_request") as monkey: |
| 44 | + try: |
| 45 | + client.do_action_with_exception(request) |
| 46 | + assert False |
| 47 | + except ClientException as e: |
| 48 | + self.assertEqual(error_code.SDK_HTTP_ERROR, e.get_error_code()) |
| 49 | + self.assertEqual(4, monkey.call_count) |
0 commit comments