| Index: third_party/gsutil/boto/tests/unit/rds/test_connection.py
|
| diff --git a/third_party/gsutil/boto/tests/unit/rds/test_connection.py b/third_party/gsutil/boto/tests/unit/rds/test_connection.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0d4bff8343d7f75d4c57c0b51ec75173e5d06b11
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/tests/unit/rds/test_connection.py
|
| @@ -0,0 +1,131 @@
|
| +#!/usr/bin/env python
|
| +# Copyright (c) 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved
|
| +#
|
| +# Permission is hereby granted, free of charge, to any person obtaining a
|
| +# copy of this software and associated documentation files (the
|
| +# "Software"), to deal in the Software without restriction, including
|
| +# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| +# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| +# persons to whom the Software is furnished to do so, subject to the fol-
|
| +# lowing conditions:
|
| +#
|
| +# The above copyright notice and this permission notice shall be included
|
| +# in all copies or substantial portions of the Software.
|
| +#
|
| +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| +# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| +# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| +# IN THE SOFTWARE.
|
| +#
|
| +
|
| +from tests.unit import unittest
|
| +from tests.unit import AWSMockServiceTestCase
|
| +
|
| +from boto.rds import RDSConnection
|
| +
|
| +
|
| +class TestRDSConnection(AWSMockServiceTestCase):
|
| + connection_class = RDSConnection
|
| +
|
| + def setUp(self):
|
| + super(TestRDSConnection, self).setUp()
|
| +
|
| + def default_body(self):
|
| + return """
|
| + <DescribeDBInstancesResponse>
|
| + <DescribeDBInstancesResult>
|
| + <DBInstances>
|
| + <DBInstance>
|
| + <Iops>2000</Iops>
|
| + <BackupRetentionPeriod>1</BackupRetentionPeriod>
|
| + <MultiAZ>false</MultiAZ>
|
| + <DBInstanceStatus>backing-up</DBInstanceStatus>
|
| + <DBInstanceIdentifier>mydbinstance2</DBInstanceIdentifier>
|
| + <PreferredBackupWindow>10:30-11:00</PreferredBackupWindow>
|
| + <PreferredMaintenanceWindow>wed:06:30-wed:07:00</PreferredMaintenanceWindow>
|
| + <OptionGroupMembership>
|
| + <OptionGroupName>default:mysql-5-5</OptionGroupName>
|
| + <Status>in-sync</Status>
|
| + </OptionGroupMembership>
|
| + <AvailabilityZone>us-west-2b</AvailabilityZone>
|
| + <ReadReplicaDBInstanceIdentifiers/>
|
| + <Engine>mysql</Engine>
|
| + <PendingModifiedValues/>
|
| + <LicenseModel>general-public-license</LicenseModel>
|
| + <DBParameterGroups>
|
| + <DBParameterGroup>
|
| + <ParameterApplyStatus>in-sync</ParameterApplyStatus>
|
| + <DBParameterGroupName>default.mysql5.5</DBParameterGroupName>
|
| + </DBParameterGroup>
|
| + </DBParameterGroups>
|
| + <Endpoint>
|
| + <Port>3306</Port>
|
| + <Address>mydbinstance2.c0hjqouvn9mf.us-west-2.rds.amazonaws.com</Address>
|
| + </Endpoint>
|
| + <EngineVersion>5.5.27</EngineVersion>
|
| + <DBSecurityGroups>
|
| + <DBSecurityGroup>
|
| + <Status>active</Status>
|
| + <DBSecurityGroupName>default</DBSecurityGroupName>
|
| + </DBSecurityGroup>
|
| + </DBSecurityGroups>
|
| + <DBName>mydb2</DBName>
|
| + <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade>
|
| + <InstanceCreateTime>2012-10-03T22:01:51.047Z</InstanceCreateTime>
|
| + <AllocatedStorage>200</AllocatedStorage>
|
| + <DBInstanceClass>db.m1.large</DBInstanceClass>
|
| + <MasterUsername>awsuser</MasterUsername>
|
| + </DBInstance>
|
| + </DBInstances>
|
| + </DescribeDBInstancesResult>
|
| + </DescribeDBInstancesResponse>
|
| + """
|
| +
|
| + def test_get_all_db_instances(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.get_all_dbinstances('instance_id')
|
| + self.assertEqual(len(response), 1)
|
| + self.assert_request_parameters({
|
| + 'Action': 'DescribeDBInstances',
|
| + 'DBInstanceIdentifier': 'instance_id',
|
| + }, ignore_params_values=['AWSAccessKeyId', 'Timestamp', 'Version',
|
| + 'SignatureVersion', 'SignatureMethod'])
|
| + db = response[0]
|
| + self.assertEqual(db.id, 'mydbinstance2')
|
| + self.assertEqual(db.create_time, '2012-10-03T22:01:51.047Z')
|
| + self.assertEqual(db.engine, 'mysql')
|
| + self.assertEqual(db.status, 'backing-up')
|
| + self.assertEqual(db.allocated_storage, 200)
|
| + self.assertEqual(
|
| + db.endpoint,
|
| + (u'mydbinstance2.c0hjqouvn9mf.us-west-2.rds.amazonaws.com', 3306))
|
| + self.assertEqual(db.instance_class, 'db.m1.large')
|
| + self.assertEqual(db.master_username, 'awsuser')
|
| + self.assertEqual(db.availability_zone, 'us-west-2b')
|
| + self.assertEqual(db.backup_retention_period, '1')
|
| + self.assertEqual(db.preferred_backup_window, '10:30-11:00')
|
| + self.assertEqual(db.preferred_maintenance_window,
|
| + 'wed:06:30-wed:07:00')
|
| + self.assertEqual(db.latest_restorable_time, None)
|
| + self.assertEqual(db.multi_az, False)
|
| + self.assertEqual(db.iops, 2000)
|
| + self.assertEqual(db.pending_modified_values, {})
|
| +
|
| + self.assertEqual(db.parameter_group.name,
|
| + 'default.mysql5.5')
|
| + self.assertEqual(db.parameter_group.description, None)
|
| + self.assertEqual(db.parameter_group.engine, None)
|
| +
|
| + self.assertEqual(db.security_group.owner_id, None)
|
| + self.assertEqual(db.security_group.name, 'default')
|
| + self.assertEqual(db.security_group.description, None)
|
| + self.assertEqual(db.security_group.ec2_groups, [])
|
| + self.assertEqual(db.security_group.ip_ranges, [])
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
| +
|
|
|