1from tests.unit import unittest 2from tests.unit import AWSMockServiceTestCase 3 4from boto.vpc import VPCConnection, InternetGateway 5 6 7class TestDescribeInternetGateway(AWSMockServiceTestCase): 8 9 connection_class = VPCConnection 10 11 def default_body(self): 12 return b""" 13 <DescribeInternetGatewaysResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> 14 <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> 15 <internetGatewaySet> 16 <item> 17 <internetGatewayId>igw-eaad4883EXAMPLE</internetGatewayId> 18 <attachmentSet> 19 <item> 20 <vpcId>vpc-11ad4878</vpcId> 21 <state>available</state> 22 </item> 23 </attachmentSet> 24 <tagSet/> 25 </item> 26 </internetGatewaySet> 27 </DescribeInternetGatewaysResponse> 28 """ 29 30 def test_describe_internet_gateway(self): 31 self.set_http_response(status_code=200) 32 api_response = self.service_connection.get_all_internet_gateways( 33 'igw-eaad4883EXAMPLE', filters=[('attachment.state', ['available', 'pending'])]) 34 self.assert_request_parameters({ 35 'Action': 'DescribeInternetGateways', 36 'InternetGatewayId.1': 'igw-eaad4883EXAMPLE', 37 'Filter.1.Name': 'attachment.state', 38 'Filter.1.Value.1': 'available', 39 'Filter.1.Value.2': 'pending'}, 40 ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', 41 'SignatureVersion', 'Timestamp', 42 'Version']) 43 self.assertEquals(len(api_response), 1) 44 self.assertIsInstance(api_response[0], InternetGateway) 45 self.assertEqual(api_response[0].id, 'igw-eaad4883EXAMPLE') 46 47 48class TestCreateInternetGateway(AWSMockServiceTestCase): 49 50 connection_class = VPCConnection 51 52 def default_body(self): 53 return b""" 54 <CreateInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> 55 <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> 56 <internetGateway> 57 <internetGatewayId>igw-eaad4883</internetGatewayId> 58 <attachmentSet/> 59 <tagSet/> 60 </internetGateway> 61 </CreateInternetGatewayResponse> 62 """ 63 64 def test_create_internet_gateway(self): 65 self.set_http_response(status_code=200) 66 api_response = self.service_connection.create_internet_gateway() 67 self.assert_request_parameters({ 68 'Action': 'CreateInternetGateway'}, 69 ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', 70 'SignatureVersion', 'Timestamp', 71 'Version']) 72 self.assertIsInstance(api_response, InternetGateway) 73 self.assertEqual(api_response.id, 'igw-eaad4883') 74 75 76class TestDeleteInternetGateway(AWSMockServiceTestCase): 77 78 connection_class = VPCConnection 79 80 def default_body(self): 81 return b""" 82 <DeleteInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> 83 <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> 84 <return>true</return> 85 </DeleteInternetGatewayResponse> 86 """ 87 88 def test_delete_internet_gateway(self): 89 self.set_http_response(status_code=200) 90 api_response = self.service_connection.delete_internet_gateway('igw-eaad4883') 91 self.assert_request_parameters({ 92 'Action': 'DeleteInternetGateway', 93 'InternetGatewayId': 'igw-eaad4883'}, 94 ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', 95 'SignatureVersion', 'Timestamp', 96 'Version']) 97 self.assertEquals(api_response, True) 98 99 100class TestAttachInternetGateway(AWSMockServiceTestCase): 101 102 connection_class = VPCConnection 103 104 def default_body(self): 105 return b""" 106 <AttachInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> 107 <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> 108 <return>true</return> 109 </AttachInternetGatewayResponse> 110 """ 111 112 def test_attach_internet_gateway(self): 113 self.set_http_response(status_code=200) 114 api_response = self.service_connection.attach_internet_gateway( 115 'igw-eaad4883', 'vpc-11ad4878') 116 self.assert_request_parameters({ 117 'Action': 'AttachInternetGateway', 118 'InternetGatewayId': 'igw-eaad4883', 119 'VpcId': 'vpc-11ad4878'}, 120 ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', 121 'SignatureVersion', 'Timestamp', 122 'Version']) 123 self.assertEquals(api_response, True) 124 125 126class TestDetachInternetGateway(AWSMockServiceTestCase): 127 128 connection_class = VPCConnection 129 130 def default_body(self): 131 return b""" 132 <DetachInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> 133 <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> 134 <return>true</return> 135 </DetachInternetGatewayResponse> 136 """ 137 138 def test_detach_internet_gateway(self): 139 self.set_http_response(status_code=200) 140 api_response = self.service_connection.detach_internet_gateway( 141 'igw-eaad4883', 'vpc-11ad4878') 142 self.assert_request_parameters({ 143 'Action': 'DetachInternetGateway', 144 'InternetGatewayId': 'igw-eaad4883', 145 'VpcId': 'vpc-11ad4878'}, 146 ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', 147 'SignatureVersion', 'Timestamp', 148 'Version']) 149 self.assertEquals(api_response, True) 150 151if __name__ == '__main__': 152 unittest.main() 153