PageRenderTime 47ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/vpc/test_vpc_peering_connection.py

https://gitlab.com/jonnialva90/iridium-browser
Python | 275 lines | 251 code | 4 blank | 20 comment | 0 complexity | ce19c4838b0748e52b2d5759b5390d24 MD5 | raw file
  1. # Copyright (c) 2014 Skytap http://skytap.com/
  2. #
  3. # Permission is hereby granted, free of charge, to any person obtaining a
  4. # copy of this software and associated documentation files (the
  5. # "Software"), to deal in the Software without restriction, including
  6. # without limitation the rights to use, copy, modify, merge, publish, dis-
  7. # tribute, sublicense, and/or sell copies of the Software, and to permit
  8. # persons to whom the Software is furnished to do so, subject to the fol-
  9. # lowing conditions:
  10. #
  11. # The above copyright notice and this permission notice shall be included
  12. # in all copies or substantial portions of the Software.
  13. #
  14. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  15. # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
  16. # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
  17. # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  18. # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  20. # IN THE SOFTWARE.
  21. from tests.unit import mock, unittest
  22. from tests.unit import AWSMockServiceTestCase
  23. from boto.vpc import VpcPeeringConnection, VPCConnection, Subnet
  24. class TestDescribeVpcPeeringConnections(AWSMockServiceTestCase):
  25. DESCRIBE_VPC_PEERING_CONNECTIONS= b"""<?xml version="1.0" encoding="UTF-8"?>
  26. <DescribeVpcPeeringConnectionsResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
  27. <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  28. <vpcPeeringConnectionSet>
  29. <item>
  30. <vpcPeeringConnectionId>pcx-111aaa22</vpcPeeringConnectionId>
  31. <requesterVpcInfo>
  32. <ownerId>777788889999</ownerId>
  33. <vpcId>vpc-1a2b3c4d</vpcId>
  34. <cidrBlock>172.31.0.0/16</cidrBlock>
  35. </requesterVpcInfo>
  36. <accepterVpcInfo>
  37. <ownerId>111122223333</ownerId>
  38. <vpcId>vpc-aa22cc33</vpcId>
  39. </accepterVpcInfo>
  40. <status>
  41. <code>pending-acceptance</code>
  42. <message>Pending Acceptance by 111122223333</message>
  43. </status>
  44. <expirationTime>2014-02-17T16:00:50.000Z</expirationTime>
  45. </item>
  46. <item>
  47. <vpcPeeringConnectionId>pcx-444bbb88</vpcPeeringConnectionId>
  48. <requesterVpcInfo>
  49. <ownerId>1237897234</ownerId>
  50. <vpcId>vpc-2398abcd</vpcId>
  51. <cidrBlock>172.30.0.0/16</cidrBlock>
  52. </requesterVpcInfo>
  53. <accepterVpcInfo>
  54. <ownerId>98654313</ownerId>
  55. <vpcId>vpc-0983bcda</vpcId>
  56. </accepterVpcInfo>
  57. <status>
  58. <code>pending-acceptance</code>
  59. <message>Pending Acceptance by 98654313</message>
  60. </status>
  61. <expirationTime>2015-02-17T16:00:50.000Z</expirationTime>
  62. </item>
  63. </vpcPeeringConnectionSet>
  64. </DescribeVpcPeeringConnectionsResponse>"""
  65. connection_class = VPCConnection
  66. def default_body(self):
  67. return self.DESCRIBE_VPC_PEERING_CONNECTIONS
  68. def test_get_vpc_peering_connections(self):
  69. self.set_http_response(status_code=200)
  70. api_response = self.service_connection.get_all_vpc_peering_connections(
  71. ['pcx-111aaa22', 'pcx-444bbb88'], filters=[('status-code', ['pending-acceptance'])])
  72. self.assertEqual(len(api_response), 2)
  73. for vpc_peering_connection in api_response:
  74. if vpc_peering_connection.id == 'pcx-111aaa22':
  75. self.assertEqual(vpc_peering_connection.id, 'pcx-111aaa22')
  76. self.assertEqual(vpc_peering_connection.status_code, 'pending-acceptance')
  77. self.assertEqual(vpc_peering_connection.status_message, 'Pending Acceptance by 111122223333')
  78. self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '777788889999')
  79. self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-1a2b3c4d')
  80. self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '172.31.0.0/16')
  81. self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '111122223333')
  82. self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-aa22cc33')
  83. self.assertEqual(vpc_peering_connection.expiration_time, '2014-02-17T16:00:50.000Z')
  84. else:
  85. self.assertEqual(vpc_peering_connection.id, 'pcx-444bbb88')
  86. self.assertEqual(vpc_peering_connection.status_code, 'pending-acceptance')
  87. self.assertEqual(vpc_peering_connection.status_message, 'Pending Acceptance by 98654313')
  88. self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '1237897234')
  89. self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-2398abcd')
  90. self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '172.30.0.0/16')
  91. self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '98654313')
  92. self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-0983bcda')
  93. self.assertEqual(vpc_peering_connection.expiration_time, '2015-02-17T16:00:50.000Z')
  94. class TestCreateVpcPeeringConnection(AWSMockServiceTestCase):
  95. CREATE_VPC_PEERING_CONNECTION= b"""<CreateVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
  96. <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  97. <vpcPeeringConnection>
  98. <vpcPeeringConnectionId>pcx-73a5401a</vpcPeeringConnectionId>
  99. <requesterVpcInfo>
  100. <ownerId>777788889999</ownerId>
  101. <vpcId>vpc-1a2b3c4d</vpcId>
  102. <cidrBlock>10.0.0.0/28</cidrBlock>
  103. </requesterVpcInfo>
  104. <accepterVpcInfo>
  105. <ownerId>123456789012</ownerId>
  106. <vpcId>vpc-a1b2c3d4</vpcId>
  107. </accepterVpcInfo>
  108. <status>
  109. <code>initiating-request</code>
  110. <message>Initiating Request to 123456789012</message>
  111. </status>
  112. <expirationTime>2014-02-18T14:37:25.000Z</expirationTime>
  113. <tagSet/>
  114. </vpcPeeringConnection>
  115. </CreateVpcPeeringConnectionResponse>"""
  116. connection_class = VPCConnection
  117. def default_body(self):
  118. return self.CREATE_VPC_PEERING_CONNECTION
  119. def test_create_vpc_peering_connection(self):
  120. self.set_http_response(status_code=200)
  121. vpc_peering_connection = self.service_connection.create_vpc_peering_connection('vpc-1a2b3c4d', 'vpc-a1b2c3d4', '123456789012')
  122. self.assertEqual(vpc_peering_connection.id, 'pcx-73a5401a')
  123. self.assertEqual(vpc_peering_connection.status_code, 'initiating-request')
  124. self.assertEqual(vpc_peering_connection.status_message, 'Initiating Request to 123456789012')
  125. self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '777788889999')
  126. self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-1a2b3c4d')
  127. self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '10.0.0.0/28')
  128. self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '123456789012')
  129. self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-a1b2c3d4')
  130. self.assertEqual(vpc_peering_connection.expiration_time, '2014-02-18T14:37:25.000Z')
  131. class TestDeleteVpcPeeringConnection(AWSMockServiceTestCase):
  132. DELETE_VPC_PEERING_CONNECTION= b"""<DeleteVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
  133. <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  134. <return>true</return>
  135. </DeleteVpcPeeringConnectionResponse>"""
  136. connection_class = VPCConnection
  137. def default_body(self):
  138. return self.DELETE_VPC_PEERING_CONNECTION
  139. def test_delete_vpc_peering_connection(self):
  140. self.set_http_response(status_code=200)
  141. self.assertEquals(self.service_connection.delete_vpc_peering_connection('pcx-12345678'), True)
  142. class TestDeleteVpcPeeringConnectionShortForm(unittest.TestCase):
  143. DESCRIBE_VPC_PEERING_CONNECTIONS= b"""<?xml version="1.0" encoding="UTF-8"?>
  144. <DescribeVpcPeeringConnectionsResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
  145. <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  146. <vpcPeeringConnectionSet>
  147. <item>
  148. <vpcPeeringConnectionId>pcx-111aaa22</vpcPeeringConnectionId>
  149. <requesterVpcInfo>
  150. <ownerId>777788889999</ownerId>
  151. <vpcId>vpc-1a2b3c4d</vpcId>
  152. <cidrBlock>172.31.0.0/16</cidrBlock>
  153. </requesterVpcInfo>
  154. <accepterVpcInfo>
  155. <ownerId>111122223333</ownerId>
  156. <vpcId>vpc-aa22cc33</vpcId>
  157. </accepterVpcInfo>
  158. <status>
  159. <code>pending-acceptance</code>
  160. <message>Pending Acceptance by 111122223333</message>
  161. </status>
  162. <expirationTime>2014-02-17T16:00:50.000Z</expirationTime>
  163. </item>
  164. </vpcPeeringConnectionSet>
  165. </DescribeVpcPeeringConnectionsResponse>"""
  166. DELETE_VPC_PEERING_CONNECTION= b"""<DeleteVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
  167. <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  168. <return>true</return>
  169. </DeleteVpcPeeringConnectionResponse>"""
  170. def test_delete_vpc_peering_connection(self):
  171. vpc_conn = VPCConnection(aws_access_key_id='aws_access_key_id',
  172. aws_secret_access_key='aws_secret_access_key')
  173. mock_response = mock.Mock()
  174. mock_response.read.return_value = self.DESCRIBE_VPC_PEERING_CONNECTIONS
  175. mock_response.status = 200
  176. vpc_conn.make_request = mock.Mock(return_value=mock_response)
  177. vpc_peering_connections = vpc_conn.get_all_vpc_peering_connections()
  178. self.assertEquals(1, len(vpc_peering_connections))
  179. vpc_peering_connection = vpc_peering_connections[0]
  180. mock_response = mock.Mock()
  181. mock_response.read.return_value = self.DELETE_VPC_PEERING_CONNECTION
  182. mock_response.status = 200
  183. vpc_conn.make_request = mock.Mock(return_value=mock_response)
  184. self.assertEquals(True, vpc_peering_connection.delete())
  185. self.assertIn('DeleteVpcPeeringConnection', vpc_conn.make_request.call_args_list[0][0])
  186. self.assertNotIn('DeleteVpc', vpc_conn.make_request.call_args_list[0][0])
  187. class TestRejectVpcPeeringConnection(AWSMockServiceTestCase):
  188. REJECT_VPC_PEERING_CONNECTION= b"""<RejectVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
  189. <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  190. <return>true</return>
  191. </RejectVpcPeeringConnectionResponse>"""
  192. connection_class = VPCConnection
  193. def default_body(self):
  194. return self.REJECT_VPC_PEERING_CONNECTION
  195. def test_reject_vpc_peering_connection(self):
  196. self.set_http_response(status_code=200)
  197. self.assertEquals(self.service_connection.reject_vpc_peering_connection('pcx-12345678'), True)
  198. class TestAcceptVpcPeeringConnection(AWSMockServiceTestCase):
  199. ACCEPT_VPC_PEERING_CONNECTION= b"""<AcceptVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
  200. <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
  201. <vpcPeeringConnection>
  202. <vpcPeeringConnectionId>pcx-1a2b3c4d</vpcPeeringConnectionId>
  203. <requesterVpcInfo>
  204. <ownerId>123456789012</ownerId>
  205. <vpcId>vpc-1a2b3c4d</vpcId>
  206. <cidrBlock>10.0.0.0/28</cidrBlock>
  207. </requesterVpcInfo>
  208. <accepterVpcInfo>
  209. <ownerId>777788889999</ownerId>
  210. <vpcId>vpc-111aaa22</vpcId>
  211. <cidrBlock>10.0.1.0/28</cidrBlock>
  212. </accepterVpcInfo>
  213. <status>
  214. <code>active</code>
  215. <message>Active</message>
  216. </status>
  217. <tagSet/>
  218. </vpcPeeringConnection>
  219. </AcceptVpcPeeringConnectionResponse>"""
  220. connection_class = VPCConnection
  221. def default_body(self):
  222. return self.ACCEPT_VPC_PEERING_CONNECTION
  223. def test_accept_vpc_peering_connection(self):
  224. self.set_http_response(status_code=200)
  225. vpc_peering_connection = self.service_connection.accept_vpc_peering_connection('pcx-1a2b3c4d')
  226. self.assertEqual(vpc_peering_connection.id, 'pcx-1a2b3c4d')
  227. self.assertEqual(vpc_peering_connection.status_code, 'active')
  228. self.assertEqual(vpc_peering_connection.status_message, 'Active')
  229. self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '123456789012')
  230. self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-1a2b3c4d')
  231. self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '10.0.0.0/28')
  232. self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '777788889999')
  233. self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-111aaa22')
  234. self.assertEqual(vpc_peering_connection.accepter_vpc_info.cidr_block, '10.0.1.0/28')
  235. if __name__ == '__main__':
  236. unittest.main()