Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aws
GitHub Repository: aws/aws-cli
Path: blob/develop/tests/functional/elb/test_register_instances_with_load_balancer.py
2630 views
1
#!/usr/bin/env python
2
# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
#
4
# Licensed under the Apache License, Version 2.0 (the "License"). You
5
# may not use this file except in compliance with the License. A copy of
6
# the License is located at
7
#
8
# http://aws.amazon.com/apache2.0/
9
#
10
# or in the "license" file accompanying this file. This file is
11
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
12
# ANY KIND, either express or implied. See the License for the specific
13
# language governing permissions and limitations under the License.
14
from awscli.testutils import BaseAWSCommandParamsTest, TestEventHandler
15
import os
16
17
18
TWO_INSTANCE_EXPECTED = {
19
'LoadBalancerName': 'my-lb',
20
'Instances': [{'InstanceId': 'i-12345678'},
21
{'InstanceId': 'i-87654321'}]
22
}
23
24
25
class TestRegisterInstancesWithLoadBalancer(BaseAWSCommandParamsTest):
26
27
prefix = 'elb register-instances-with-load-balancer'
28
29
def test_one_instance(self):
30
cmdline = self.prefix
31
cmdline += ' --load-balancer-name my-lb'
32
cmdline += ' --instances {"InstanceId":"i-12345678"}'
33
result = {'LoadBalancerName': 'my-lb',
34
'Instances': [{'InstanceId': 'i-12345678'}]}
35
self.assert_params_for_cmd(cmdline, result)
36
37
def test_shorthand(self):
38
cmdline = self.prefix
39
cmdline += ' --load-balancer-name my-lb'
40
cmdline += ' --instances i-12345678'
41
result = {'LoadBalancerName': 'my-lb',
42
'Instances': [{'InstanceId': 'i-12345678'}]}
43
self.assert_params_for_cmd(cmdline, result)
44
45
def test_two_instance(self):
46
cmdline = self.prefix
47
cmdline += ' --load-balancer-name my-lb'
48
cmdline += ' --instances {"InstanceId":"i-12345678"}'
49
cmdline += ' {"InstanceId":"i-87654321"}'
50
self.assert_params_for_cmd(cmdline, TWO_INSTANCE_EXPECTED)
51
52
def test_two_instance_as_json(self):
53
cmdline = self.prefix
54
cmdline += ' --load-balancer-name my-lb'
55
cmdline += ' --instances [{"InstanceId":"i-12345678"},'
56
cmdline += '{"InstanceId":"i-87654321"}]'
57
self.assert_params_for_cmd(cmdline, TWO_INSTANCE_EXPECTED)
58
59
def test_two_instance_from_file(self):
60
data_path = os.path.join(os.path.dirname(__file__),
61
'test.json')
62
cmdline = self.prefix
63
cmdline += ' --load-balancer-name my-lb'
64
cmdline += ' --instances file://%s' % data_path
65
self.assert_params_for_cmd(cmdline, TWO_INSTANCE_EXPECTED)
66
67
def test_json_file_with_spaces(self):
68
data_path = os.path.join(os.path.dirname(__file__),
69
'test_with_spaces.json')
70
cmdline = self.prefix
71
cmdline += ' --load-balancer-name my-lb'
72
cmdline += ' --instances file://%s' % data_path
73
self.assert_params_for_cmd(cmdline, TWO_INSTANCE_EXPECTED)
74
75
def test_two_instance_shorthand(self):
76
cmdline = self.prefix
77
cmdline += ' --load-balancer-name my-lb'
78
cmdline += ' --instances i-12345678 i-87654321'
79
self.assert_params_for_cmd(cmdline, TWO_INSTANCE_EXPECTED)
80
81
def test_unpack_event_uses_service_name(self):
82
cmdline = self.prefix
83
cmdline += ' --load-balancer-name my-lb'
84
cmdline += ' --instances {"InstanceId":"i-12345678"}'
85
handler = TestEventHandler()
86
event = 'process-cli-arg.elb.register-instances-with-load-balancer'
87
self.driver.session.register(event, handler.handler)
88
self.run_cmd(cmdline)
89
self.assertTrue(handler.called, "Expected event not called.")
90
91