Path: blob/develop/tests/functional/ec2/test_describe_instances.py
1567 views
#!/usr/bin/env python1# Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.2#3# Licensed under the Apache License, Version 2.0 (the "License"). You4# may not use this file except in compliance with the License. A copy of5# the License is located at6#7# http://aws.amazon.com/apache2.0/8#9# or in the "license" file accompanying this file. This file is10# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF11# ANY KIND, either express or implied. See the License for the specific12# language governing permissions and limitations under the License.13from awscli.testutils import BaseAWSCommandParamsTest141516class TestDescribeInstances(BaseAWSCommandParamsTest):1718prefix = 'ec2 describe-instances'1920def test_no_params(self):21cmdline = self.prefix22result = {}23self.assert_params_for_cmd(cmdline, result)2425def test_instance_id(self):26args = ' --instance-ids i-12345678'27cmdline = self.prefix + args28result = {'InstanceIds': ['i-12345678']}29self.assert_params_for_cmd(cmdline, result)3031def test_instance_ids(self):32args = ' --instance-ids i-12345678 i-87654321'33cmdline = self.prefix + args34result = {'InstanceIds': ['i-12345678', 'i-87654321']}35self.assert_params_for_cmd(cmdline, result)3637def test_instance_ids_alternate(self):38# Not required, but will still work if you use JSON.39args = ' --instance-ids ["i-12345678","i-87654321"]'40cmdline = self.prefix + args41result = {'InstanceIds': ['i-12345678', 'i-87654321']}42self.assert_params_for_cmd(cmdline, result)4344def test_filter_json(self):45args = """ --filters {"Name":"group-name","Values":["foobar"]}"""46cmdline = self.prefix + args47result = {48'Filters': [49{'Name': 'group-name',50'Values': ['foobar']},51],52}53self.assert_params_for_cmd(cmdline, result)5455def test_filter_simple(self):56args = """ --filters Name=group-name,Values=foobar"""57cmdline = self.prefix + args58result = {59'Filters': [60{'Name': 'group-name',61'Values': ['foobar']},62],63}64self.assert_params_for_cmd(cmdline, result)6566def test_filter_values(self):67args = """ --filters Name=group-name,Values=foobar,fiebaz"""68cmdline = self.prefix + args69result = {70'Filters': [71{'Name': 'group-name',72'Values': ['foobar', 'fiebaz']},73],74}75self.assert_params_for_cmd(cmdline, result)7677def test_multiple_filters(self):78args = (' --filters Name=group-name,Values=foobar '79'Name=instance-id,Values=i-12345')80cmdline = self.prefix + args81result = {82'Filters': [83{'Name': 'group-name',84'Values': ['foobar']},85{'Name': 'instance-id',86'Values': ['i-12345']},87],88}89self.assert_params_for_cmd(cmdline, result)9091def test_multiple_filters_alternate(self):92cmdlist = 'ec2 describe-instances'.split()93cmdlist.extend(['--filters',94'Name = group-name, Values= foobar',95'Name=instance-id,Values=i-12345'])96result = {97'Filters': [98{'Name': 'group-name',99'Values': ['foobar']},100{'Name': 'instance-id',101'Values': ['i-12345']},102],103}104self.assert_params_for_cmd(cmdlist, result)105106def test_page_size(self):107args = ' --page-size 10'108cmdline = self.prefix + args109result = {'MaxResults': 10}110self.assert_params_for_cmd(cmdline, result)111112113if __name__ == "__main__":114unittest.main()115116117