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() |
+ |