Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aws
GitHub Repository: aws/aws-cli
Path: blob/develop/tests/functional/ec2/test_describe_instances.py
1567 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
15
16
17
class TestDescribeInstances(BaseAWSCommandParamsTest):
18
19
prefix = 'ec2 describe-instances'
20
21
def test_no_params(self):
22
cmdline = self.prefix
23
result = {}
24
self.assert_params_for_cmd(cmdline, result)
25
26
def test_instance_id(self):
27
args = ' --instance-ids i-12345678'
28
cmdline = self.prefix + args
29
result = {'InstanceIds': ['i-12345678']}
30
self.assert_params_for_cmd(cmdline, result)
31
32
def test_instance_ids(self):
33
args = ' --instance-ids i-12345678 i-87654321'
34
cmdline = self.prefix + args
35
result = {'InstanceIds': ['i-12345678', 'i-87654321']}
36
self.assert_params_for_cmd(cmdline, result)
37
38
def test_instance_ids_alternate(self):
39
# Not required, but will still work if you use JSON.
40
args = ' --instance-ids ["i-12345678","i-87654321"]'
41
cmdline = self.prefix + args
42
result = {'InstanceIds': ['i-12345678', 'i-87654321']}
43
self.assert_params_for_cmd(cmdline, result)
44
45
def test_filter_json(self):
46
args = """ --filters {"Name":"group-name","Values":["foobar"]}"""
47
cmdline = self.prefix + args
48
result = {
49
'Filters': [
50
{'Name': 'group-name',
51
'Values': ['foobar']},
52
],
53
}
54
self.assert_params_for_cmd(cmdline, result)
55
56
def test_filter_simple(self):
57
args = """ --filters Name=group-name,Values=foobar"""
58
cmdline = self.prefix + args
59
result = {
60
'Filters': [
61
{'Name': 'group-name',
62
'Values': ['foobar']},
63
],
64
}
65
self.assert_params_for_cmd(cmdline, result)
66
67
def test_filter_values(self):
68
args = """ --filters Name=group-name,Values=foobar,fiebaz"""
69
cmdline = self.prefix + args
70
result = {
71
'Filters': [
72
{'Name': 'group-name',
73
'Values': ['foobar', 'fiebaz']},
74
],
75
}
76
self.assert_params_for_cmd(cmdline, result)
77
78
def test_multiple_filters(self):
79
args = (' --filters Name=group-name,Values=foobar '
80
'Name=instance-id,Values=i-12345')
81
cmdline = self.prefix + args
82
result = {
83
'Filters': [
84
{'Name': 'group-name',
85
'Values': ['foobar']},
86
{'Name': 'instance-id',
87
'Values': ['i-12345']},
88
],
89
}
90
self.assert_params_for_cmd(cmdline, result)
91
92
def test_multiple_filters_alternate(self):
93
cmdlist = 'ec2 describe-instances'.split()
94
cmdlist.extend(['--filters',
95
'Name = group-name, Values= foobar',
96
'Name=instance-id,Values=i-12345'])
97
result = {
98
'Filters': [
99
{'Name': 'group-name',
100
'Values': ['foobar']},
101
{'Name': 'instance-id',
102
'Values': ['i-12345']},
103
],
104
}
105
self.assert_params_for_cmd(cmdlist, result)
106
107
def test_page_size(self):
108
args = ' --page-size 10'
109
cmdline = self.prefix + args
110
result = {'MaxResults': 10}
111
self.assert_params_for_cmd(cmdline, result)
112
113
114
if __name__ == "__main__":
115
unittest.main()
116
117