Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: third_party/gsutil/third_party/boto/tests/unit/rds/test_snapshot.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/third_party/boto/tests/unit/rds/test_snapshot.py
diff --git a/third_party/gsutil/third_party/boto/tests/unit/rds/test_snapshot.py b/third_party/gsutil/third_party/boto/tests/unit/rds/test_snapshot.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3c9d8a67282483ca4c145ede59fc32c350a3738
--- /dev/null
+++ b/third_party/gsutil/third_party/boto/tests/unit/rds/test_snapshot.py
@@ -0,0 +1,296 @@
+from tests.unit import unittest
+from tests.unit import AWSMockServiceTestCase
+
+from boto.rds import RDSConnection
+from boto.rds.dbsnapshot import DBSnapshot
+from boto.rds import DBInstance
+
+
+class TestDescribeDBSnapshots(AWSMockServiceTestCase):
+ connection_class = RDSConnection
+
+ def default_body(self):
+ return """
+ <DescribeDBSnapshotsResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/">
+ <DescribeDBSnapshotsResult>
+ <DBSnapshots>
+ <DBSnapshot>
+ <Port>3306</Port>
+ <SnapshotCreateTime>2011-05-23T06:29:03.483Z</SnapshotCreateTime>
+ <Engine>mysql</Engine>
+ <Status>available</Status>
+ <AvailabilityZone>us-east-1a</AvailabilityZone>
+ <LicenseModel>general-public-license</LicenseModel>
+ <InstanceCreateTime>2011-05-23T06:06:43.110Z</InstanceCreateTime>
+ <AllocatedStorage>10</AllocatedStorage>
+ <DBInstanceIdentifier>simcoprod01</DBInstanceIdentifier>
+ <EngineVersion>5.1.50</EngineVersion>
+ <DBSnapshotIdentifier>mydbsnapshot</DBSnapshotIdentifier>
+ <SnapshotType>manual</SnapshotType>
+ <MasterUsername>master</MasterUsername>
+ <OptionGroupName>myoptiongroupname</OptionGroupName>
+ <Iops>1000</Iops>
+ <PercentProgress>100</PercentProgress>
+ <SourceRegion>eu-west-1</SourceRegion>
+ <VpcId>myvpc</VpcId>
+ </DBSnapshot>
+ <DBSnapshot>
+ <Port>3306</Port>
+ <SnapshotCreateTime>2011-03-11T07:20:24.082Z</SnapshotCreateTime>
+ <Engine>mysql</Engine>
+ <Status>available</Status>
+ <AvailabilityZone>us-east-1a</AvailabilityZone>
+ <LicenseModel>general-public-license</LicenseModel>
+ <InstanceCreateTime>2010-08-04T23:27:36.420Z</InstanceCreateTime>
+ <AllocatedStorage>50</AllocatedStorage>
+ <DBInstanceIdentifier>mydbinstance</DBInstanceIdentifier>
+ <EngineVersion>5.1.49</EngineVersion>
+ <DBSnapshotIdentifier>mysnapshot1</DBSnapshotIdentifier>
+ <SnapshotType>manual</SnapshotType>
+ <MasterUsername>sa</MasterUsername>
+ <OptionGroupName>myoptiongroupname</OptionGroupName>
+ <Iops>1000</Iops>
+ </DBSnapshot>
+ <DBSnapshot>
+ <Port>3306</Port>
+ <SnapshotCreateTime>2012-04-02T00:01:24.082Z</SnapshotCreateTime>
+ <Engine>mysql</Engine>
+ <Status>available</Status>
+ <AvailabilityZone>us-east-1d</AvailabilityZone>
+ <LicenseModel>general-public-license</LicenseModel>
+ <InstanceCreateTime>2010-07-16T00:06:59.107Z</InstanceCreateTime>
+ <AllocatedStorage>60</AllocatedStorage>
+ <DBInstanceIdentifier>simcoprod01</DBInstanceIdentifier>
+ <EngineVersion>5.1.47</EngineVersion>
+ <DBSnapshotIdentifier>rds:simcoprod01-2012-04-02-00-01</DBSnapshotIdentifier>
+ <SnapshotType>automated</SnapshotType>
+ <MasterUsername>master</MasterUsername>
+ <OptionGroupName>myoptiongroupname</OptionGroupName>
+ <Iops>1000</Iops>
+ </DBSnapshot>
+ </DBSnapshots>
+ </DescribeDBSnapshotsResult>
+ <ResponseMetadata>
+ <RequestId>c4191173-8506-11e0-90aa-eb648410240d</RequestId>
+ </ResponseMetadata>
+ </DescribeDBSnapshotsResponse>
+ """
+
+ def test_describe_dbinstances_by_instance(self):
+ self.set_http_response(status_code=200)
+ response = self.service_connection.get_all_dbsnapshots(instance_id='simcoprod01')
+ self.assert_request_parameters({
+ 'Action': 'DescribeDBSnapshots',
+ 'DBInstanceIdentifier': 'simcoprod01'
+ }, ignore_params_values=['Version'])
+ self.assertEqual(len(response), 3)
+ self.assertIsInstance(response[0], DBSnapshot)
+ self.assertEqual(response[0].id, 'mydbsnapshot')
+ self.assertEqual(response[0].status, 'available')
+ self.assertEqual(response[0].instance_id, 'simcoprod01')
+ self.assertEqual(response[0].engine_version, '5.1.50')
+ self.assertEqual(response[0].license_model, 'general-public-license')
+ self.assertEqual(response[0].iops, 1000)
+ self.assertEqual(response[0].option_group_name, 'myoptiongroupname')
+ self.assertEqual(response[0].percent_progress, 100)
+ self.assertEqual(response[0].snapshot_type, 'manual')
+ self.assertEqual(response[0].source_region, 'eu-west-1')
+ self.assertEqual(response[0].vpc_id, 'myvpc')
+
+
+
+class TestCreateDBSnapshot(AWSMockServiceTestCase):
+ connection_class = RDSConnection
+
+ def default_body(self):
+ return """
+ <CreateDBSnapshotResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/">
+ <CreateDBSnapshotResult>
+ <DBSnapshot>
+ <Port>3306</Port>
+ <Engine>mysql</Engine>
+ <Status>creating</Status>
+ <AvailabilityZone>us-east-1a</AvailabilityZone>
+ <LicenseModel>general-public-license</LicenseModel>
+ <InstanceCreateTime>2011-05-23T06:06:43.110Z</InstanceCreateTime>
+ <AllocatedStorage>10</AllocatedStorage>
+ <DBInstanceIdentifier>simcoprod01</DBInstanceIdentifier>
+ <EngineVersion>5.1.50</EngineVersion>
+ <DBSnapshotIdentifier>mydbsnapshot</DBSnapshotIdentifier>
+ <SnapshotType>manual</SnapshotType>
+ <MasterUsername>master</MasterUsername>
+ </DBSnapshot>
+ </CreateDBSnapshotResult>
+ <ResponseMetadata>
+ <RequestId>c4181d1d-8505-11e0-90aa-eb648410240d</RequestId>
+ </ResponseMetadata>
+ </CreateDBSnapshotResponse>
+ """
+
+ def test_create_dbinstance(self):
+ self.set_http_response(status_code=200)
+ response = self.service_connection.create_dbsnapshot('mydbsnapshot', 'simcoprod01')
+ self.assert_request_parameters({
+ 'Action': 'CreateDBSnapshot',
+ 'DBSnapshotIdentifier': 'mydbsnapshot',
+ 'DBInstanceIdentifier': 'simcoprod01'
+ }, ignore_params_values=['Version'])
+ self.assertIsInstance(response, DBSnapshot)
+ self.assertEqual(response.id, 'mydbsnapshot')
+ self.assertEqual(response.instance_id, 'simcoprod01')
+ self.assertEqual(response.status, 'creating')
+
+
+class TestCopyDBSnapshot(AWSMockServiceTestCase):
+ connection_class = RDSConnection
+
+ def default_body(self):
+ return """
+ <CopyDBSnapshotResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/">
+ <CopyDBSnapshotResult>
+ <DBSnapshot>
+ <Port>3306</Port>
+ <Engine>mysql</Engine>
+ <Status>available</Status>
+ <AvailabilityZone>us-east-1a</AvailabilityZone>
+ <LicenseModel>general-public-license</LicenseModel>
+ <InstanceCreateTime>2011-05-23T06:06:43.110Z</InstanceCreateTime>
+ <AllocatedStorage>10</AllocatedStorage>
+ <DBInstanceIdentifier>simcoprod01</DBInstanceIdentifier>
+ <EngineVersion>5.1.50</EngineVersion>
+ <DBSnapshotIdentifier>mycopieddbsnapshot</DBSnapshotIdentifier>
+ <SnapshotType>manual</SnapshotType>
+ <MasterUsername>master</MasterUsername>
+ </DBSnapshot>
+ </CopyDBSnapshotResult>
+ <ResponseMetadata>
+ <RequestId>c4181d1d-8505-11e0-90aa-eb648410240d</RequestId>
+ </ResponseMetadata>
+ </CopyDBSnapshotResponse>
+ """
+
+ def test_copy_dbinstance(self):
+ self.set_http_response(status_code=200)
+ response = self.service_connection.copy_dbsnapshot('myautomaticdbsnapshot', 'mycopieddbsnapshot')
+ self.assert_request_parameters({
+ 'Action': 'CopyDBSnapshot',
+ 'SourceDBSnapshotIdentifier': 'myautomaticdbsnapshot',
+ 'TargetDBSnapshotIdentifier': 'mycopieddbsnapshot'
+ }, ignore_params_values=['Version'])
+ self.assertIsInstance(response, DBSnapshot)
+ self.assertEqual(response.id, 'mycopieddbsnapshot')
+ self.assertEqual(response.status, 'available')
+
+
+class TestDeleteDBSnapshot(AWSMockServiceTestCase):
+ connection_class = RDSConnection
+
+ def default_body(self):
+ return """
+ <DeleteDBSnapshotResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/">
+ <DeleteDBSnapshotResult>
+ <DBSnapshot>
+ <Port>3306</Port>
+ <SnapshotCreateTime>2011-03-11T07:20:24.082Z</SnapshotCreateTime>
+ <Engine>mysql</Engine>
+ <Status>deleted</Status>
+ <AvailabilityZone>us-east-1d</AvailabilityZone>
+ <LicenseModel>general-public-license</LicenseModel>
+ <InstanceCreateTime>2010-07-16T00:06:59.107Z</InstanceCreateTime>
+ <AllocatedStorage>60</AllocatedStorage>
+ <DBInstanceIdentifier>simcoprod01</DBInstanceIdentifier>
+ <EngineVersion>5.1.47</EngineVersion>
+ <DBSnapshotIdentifier>mysnapshot2</DBSnapshotIdentifier>
+ <SnapshotType>manual</SnapshotType>
+ <MasterUsername>master</MasterUsername>
+ </DBSnapshot>
+ </DeleteDBSnapshotResult>
+ <ResponseMetadata>
+ <RequestId>627a43a1-8507-11e0-bd9b-a7b1ece36d51</RequestId>
+ </ResponseMetadata>
+ </DeleteDBSnapshotResponse>
+ """
+
+ def test_delete_dbinstance(self):
+ self.set_http_response(status_code=200)
+ response = self.service_connection.delete_dbsnapshot('mysnapshot2')
+ self.assert_request_parameters({
+ 'Action': 'DeleteDBSnapshot',
+ 'DBSnapshotIdentifier': 'mysnapshot2'
+ }, ignore_params_values=['Version'])
+ self.assertIsInstance(response, DBSnapshot)
+ self.assertEqual(response.id, 'mysnapshot2')
+ self.assertEqual(response.status, 'deleted')
+
+
+class TestRestoreDBInstanceFromDBSnapshot(AWSMockServiceTestCase):
+ connection_class = RDSConnection
+
+ def default_body(self):
+ return """
+ <RestoreDBInstanceFromDBSnapshotResponse xmlns="http://rds.amazonaws.com/doc/2013-05-15/">
+ <RestoreDBInstanceFromDBSnapshotResult>
+ <DBInstance>
+ <ReadReplicaDBInstanceIdentifiers/>
+ <Engine>mysql</Engine>
+ <PendingModifiedValues/>
+ <BackupRetentionPeriod>1</BackupRetentionPeriod>
+ <MultiAZ>false</MultiAZ>
+ <LicenseModel>general-public-license</LicenseModel>
+ <DBInstanceStatus>creating</DBInstanceStatus>
+ <EngineVersion>5.1.50</EngineVersion>
+ <DBInstanceIdentifier>myrestoreddbinstance</DBInstanceIdentifier>
+ <DBParameterGroups>
+ <DBParameterGroup>
+ <ParameterApplyStatus>in-sync</ParameterApplyStatus>
+ <DBParameterGroupName>default.mysql5.1</DBParameterGroupName>
+ </DBParameterGroup>
+ </DBParameterGroups>
+ <DBSecurityGroups>
+ <DBSecurityGroup>
+ <Status>active</Status>
+ <DBSecurityGroupName>default</DBSecurityGroupName>
+ </DBSecurityGroup>
+ </DBSecurityGroups>
+ <PreferredBackupWindow>00:00-00:30</PreferredBackupWindow>
+ <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade>
+ <PreferredMaintenanceWindow>sat:07:30-sat:08:00</PreferredMaintenanceWindow>
+ <AllocatedStorage>10</AllocatedStorage>
+ <DBInstanceClass>db.m1.large</DBInstanceClass>
+ <MasterUsername>master</MasterUsername>
+ </DBInstance>
+ </RestoreDBInstanceFromDBSnapshotResult>
+ <ResponseMetadata>
+ <RequestId>7ca622e8-8508-11e0-bd9b-a7b1ece36d51</RequestId>
+ </ResponseMetadata>
+ </RestoreDBInstanceFromDBSnapshotResponse>
+ """
+
+ def test_restore_dbinstance_from_dbsnapshot(self):
+ self.set_http_response(status_code=200)
+ response = self.service_connection.restore_dbinstance_from_dbsnapshot('mydbsnapshot',
+ 'myrestoreddbinstance',
+ 'db.m1.large',
+ '3306',
+ 'us-east-1a',
+ 'false',
+ 'true')
+ self.assert_request_parameters({
+ 'Action': 'RestoreDBInstanceFromDBSnapshot',
+ 'DBSnapshotIdentifier': 'mydbsnapshot',
+ 'DBInstanceIdentifier': 'myrestoreddbinstance',
+ 'DBInstanceClass': 'db.m1.large',
+ 'Port': '3306',
+ 'AvailabilityZone': 'us-east-1a',
+ 'MultiAZ': 'false',
+ 'AutoMinorVersionUpgrade': 'true'
+ }, ignore_params_values=['Version'])
+ self.assertIsInstance(response, DBInstance)
+ self.assertEqual(response.id, 'myrestoreddbinstance')
+ self.assertEqual(response.status, 'creating')
+ self.assertEqual(response.instance_class, 'db.m1.large')
+ self.assertEqual(response.multi_az, False)
+
+
+if __name__ == '__main__':
+ unittest.main()

Powered by Google App Engine
This is Rietveld 408576698