OLD | NEW |
(Empty) | |
| 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved |
| 3 # |
| 4 # Permission is hereby granted, free of charge, to any person obtaining a |
| 5 # copy of this software and associated documentation files (the |
| 6 # "Software"), to deal in the Software without restriction, including |
| 7 # without limitation the rights to use, copy, modify, merge, publish, dis- |
| 8 # tribute, sublicense, and/or sell copies of the Software, and to permit |
| 9 # persons to whom the Software is furnished to do so, subject to the fol- |
| 10 # lowing conditions: |
| 11 # |
| 12 # The above copyright notice and this permission notice shall be included |
| 13 # in all copies or substantial portions of the Software. |
| 14 # |
| 15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| 16 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- |
| 17 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT |
| 18 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
| 19 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 20 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
| 21 # IN THE SOFTWARE. |
| 22 # |
| 23 |
| 24 from tests.unit import unittest |
| 25 from tests.unit import AWSMockServiceTestCase |
| 26 |
| 27 from boto.rds import RDSConnection |
| 28 |
| 29 |
| 30 class TestRDSConnection(AWSMockServiceTestCase): |
| 31 connection_class = RDSConnection |
| 32 |
| 33 def setUp(self): |
| 34 super(TestRDSConnection, self).setUp() |
| 35 |
| 36 def default_body(self): |
| 37 return """ |
| 38 <DescribeDBInstancesResponse> |
| 39 <DescribeDBInstancesResult> |
| 40 <DBInstances> |
| 41 <DBInstance> |
| 42 <Iops>2000</Iops> |
| 43 <BackupRetentionPeriod>1</BackupRetentionPeriod> |
| 44 <MultiAZ>false</MultiAZ> |
| 45 <DBInstanceStatus>backing-up</DBInstanceStatus> |
| 46 <DBInstanceIdentifier>mydbinstance2</DBInstanceIdentifier> |
| 47 <PreferredBackupWindow>10:30-11:00</PreferredBackupWindow> |
| 48 <PreferredMaintenanceWindow>wed:06:30-wed:07:00</PreferredMain
tenanceWindow> |
| 49 <OptionGroupMembership> |
| 50 <OptionGroupName>default:mysql-5-5</OptionGroupName> |
| 51 <Status>in-sync</Status> |
| 52 </OptionGroupMembership> |
| 53 <AvailabilityZone>us-west-2b</AvailabilityZone> |
| 54 <ReadReplicaDBInstanceIdentifiers/> |
| 55 <Engine>mysql</Engine> |
| 56 <PendingModifiedValues/> |
| 57 <LicenseModel>general-public-license</LicenseModel> |
| 58 <DBParameterGroups> |
| 59 <DBParameterGroup> |
| 60 <ParameterApplyStatus>in-sync</ParameterApplyStatus> |
| 61 <DBParameterGroupName>default.mysql5.5</DBParameterGroupNa
me> |
| 62 </DBParameterGroup> |
| 63 </DBParameterGroups> |
| 64 <Endpoint> |
| 65 <Port>3306</Port> |
| 66 <Address>mydbinstance2.c0hjqouvn9mf.us-west-2.rds.amazonaws.
com</Address> |
| 67 </Endpoint> |
| 68 <EngineVersion>5.5.27</EngineVersion> |
| 69 <DBSecurityGroups> |
| 70 <DBSecurityGroup> |
| 71 <Status>active</Status> |
| 72 <DBSecurityGroupName>default</DBSecurityGroupName> |
| 73 </DBSecurityGroup> |
| 74 </DBSecurityGroups> |
| 75 <DBName>mydb2</DBName> |
| 76 <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade> |
| 77 <InstanceCreateTime>2012-10-03T22:01:51.047Z</InstanceCreateTi
me> |
| 78 <AllocatedStorage>200</AllocatedStorage> |
| 79 <DBInstanceClass>db.m1.large</DBInstanceClass> |
| 80 <MasterUsername>awsuser</MasterUsername> |
| 81 </DBInstance> |
| 82 </DBInstances> |
| 83 </DescribeDBInstancesResult> |
| 84 </DescribeDBInstancesResponse> |
| 85 """ |
| 86 |
| 87 def test_get_all_db_instances(self): |
| 88 self.set_http_response(status_code=200) |
| 89 response = self.service_connection.get_all_dbinstances('instance_id') |
| 90 self.assertEqual(len(response), 1) |
| 91 self.assert_request_parameters({ |
| 92 'Action': 'DescribeDBInstances', |
| 93 'DBInstanceIdentifier': 'instance_id', |
| 94 }, ignore_params_values=['AWSAccessKeyId', 'Timestamp', 'Version', |
| 95 'SignatureVersion', 'SignatureMethod']) |
| 96 db = response[0] |
| 97 self.assertEqual(db.id, 'mydbinstance2') |
| 98 self.assertEqual(db.create_time, '2012-10-03T22:01:51.047Z') |
| 99 self.assertEqual(db.engine, 'mysql') |
| 100 self.assertEqual(db.status, 'backing-up') |
| 101 self.assertEqual(db.allocated_storage, 200) |
| 102 self.assertEqual( |
| 103 db.endpoint, |
| 104 (u'mydbinstance2.c0hjqouvn9mf.us-west-2.rds.amazonaws.com', 3306)) |
| 105 self.assertEqual(db.instance_class, 'db.m1.large') |
| 106 self.assertEqual(db.master_username, 'awsuser') |
| 107 self.assertEqual(db.availability_zone, 'us-west-2b') |
| 108 self.assertEqual(db.backup_retention_period, '1') |
| 109 self.assertEqual(db.preferred_backup_window, '10:30-11:00') |
| 110 self.assertEqual(db.preferred_maintenance_window, |
| 111 'wed:06:30-wed:07:00') |
| 112 self.assertEqual(db.latest_restorable_time, None) |
| 113 self.assertEqual(db.multi_az, False) |
| 114 self.assertEqual(db.iops, 2000) |
| 115 self.assertEqual(db.pending_modified_values, {}) |
| 116 |
| 117 self.assertEqual(db.parameter_group.name, |
| 118 'default.mysql5.5') |
| 119 self.assertEqual(db.parameter_group.description, None) |
| 120 self.assertEqual(db.parameter_group.engine, None) |
| 121 |
| 122 self.assertEqual(db.security_group.owner_id, None) |
| 123 self.assertEqual(db.security_group.name, 'default') |
| 124 self.assertEqual(db.security_group.description, None) |
| 125 self.assertEqual(db.security_group.ec2_groups, []) |
| 126 self.assertEqual(db.security_group.ip_ranges, []) |
| 127 |
| 128 |
| 129 if __name__ == '__main__': |
| 130 unittest.main() |
| 131 |
OLD | NEW |