18d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoifrom tests.unit import unittest
28d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoifrom tests.unit import AWSMockServiceTestCase
38d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
48d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoifrom boto.vpc import VPCConnection, InternetGateway
58d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
68d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
78d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestDescribeInternetGateway(AWSMockServiceTestCase):
88d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
98d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <DescribeInternetGatewaysResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <internetGatewaySet>
168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <item>
178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <internetGatewayId>igw-eaad4883EXAMPLE</internetGatewayId>
188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <attachmentSet>
198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <item>
208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                           <vpcId>vpc-11ad4878</vpcId>
218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                           <state>available</state>
228d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        </item>
238d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     </attachmentSet>
248d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <tagSet/>
258d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  </item>
268d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </internetGatewaySet>
278d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </DescribeInternetGatewaysResponse>
288d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
298d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
308d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_describe_internet_gateway(self):
318d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
328d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        api_response = self.service_connection.get_all_internet_gateways(
338d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'igw-eaad4883EXAMPLE', filters=[('attachment.state', ['available', 'pending'])])
348d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
358d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'DescribeInternetGateways',
368d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'InternetGatewayId.1': 'igw-eaad4883EXAMPLE',
378d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Filter.1.Name': 'attachment.state',
388d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Filter.1.Value.1': 'available',
398d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Filter.1.Value.2': 'pending'},
408d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
418d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
428d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
438d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEquals(len(api_response), 1)
448d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertIsInstance(api_response[0], InternetGateway)
458d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(api_response[0].id, 'igw-eaad4883EXAMPLE')
468d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
478d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
488d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestCreateInternetGateway(AWSMockServiceTestCase):
498d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
508d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
518d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
528d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
538d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
548d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <CreateInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
558d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
568d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <internetGateway>
578d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <internetGatewayId>igw-eaad4883</internetGatewayId>
588d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <attachmentSet/>
598d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <tagSet/>
608d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </internetGateway>
618d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </CreateInternetGatewayResponse>
628d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
638d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
648d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_create_internet_gateway(self):
658d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
668d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        api_response = self.service_connection.create_internet_gateway()
678d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
688d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'CreateInternetGateway'},
698d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
708d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
718d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
728d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertIsInstance(api_response, InternetGateway)
738d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(api_response.id, 'igw-eaad4883')
748d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
758d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
768d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestDeleteInternetGateway(AWSMockServiceTestCase):
778d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
788d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
798d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
808d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
818d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
828d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <DeleteInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
838d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
848d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <return>true</return>
858d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </DeleteInternetGatewayResponse>
868d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
878d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
888d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_delete_internet_gateway(self):
898d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
908d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        api_response = self.service_connection.delete_internet_gateway('igw-eaad4883')
918d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
928d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'DeleteInternetGateway',
938d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'InternetGatewayId': 'igw-eaad4883'},
948d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
958d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
968d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
978d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEquals(api_response, True)
988d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
998d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1008d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestAttachInternetGateway(AWSMockServiceTestCase):
1018d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1028d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
1038d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1048d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
1058d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
1068d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <AttachInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
1078d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
1088d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <return>true</return>
1098d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </AttachInternetGatewayResponse>
1108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
1118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_attach_internet_gateway(self):
1138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
1148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        api_response = self.service_connection.attach_internet_gateway(
1158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'igw-eaad4883', 'vpc-11ad4878')
1168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
1178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'AttachInternetGateway',
1188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'InternetGatewayId': 'igw-eaad4883',
1198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'VpcId': 'vpc-11ad4878'},
1208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
1218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
1228d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
1238d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEquals(api_response, True)
1248d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1258d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1268d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestDetachInternetGateway(AWSMockServiceTestCase):
1278d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1288d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
1298d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1308d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
1318d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
1328d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <DetachInternetGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
1338d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
1348d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <return>true</return>
1358d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </DetachInternetGatewayResponse>
1368d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
1378d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1388d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_detach_internet_gateway(self):
1398d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
1408d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        api_response = self.service_connection.detach_internet_gateway(
1418d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'igw-eaad4883', 'vpc-11ad4878')
1428d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
1438d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'DetachInternetGateway',
1448d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'InternetGatewayId': 'igw-eaad4883',
1458d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'VpcId': 'vpc-11ad4878'},
1468d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
1478d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
1488d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
1498d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEquals(api_response, True)
1508d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1518d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiif __name__ == '__main__':
1528d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    unittest.main()
153