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

Unified Diff: third_party/boto/tests/unit/ec2/test_connection.py

Issue 698893003: Update checked in version of gsutil to version 4.6 (Closed) Base URL: http://dart.googlecode.com/svn/third_party/gsutil/
Patch Set: Created 6 years, 1 month 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/boto/tests/unit/ec2/test_connection.py
===================================================================
--- third_party/boto/tests/unit/ec2/test_connection.py (revision 33376)
+++ third_party/boto/tests/unit/ec2/test_connection.py (working copy)
@@ -2,7 +2,7 @@
import httplib
from datetime import datetime, timedelta
-from mock import MagicMock, Mock, patch
+from mock import MagicMock, Mock
from tests.unit import unittest
from tests.unit import AWSMockServiceTestCase
@@ -702,6 +702,18 @@
</networkInterfaceSet>
</DescribeNetworkInterfacesResponse>"""
+ def test_get_all_network_interfaces(self):
+ self.set_http_response(status_code=200)
+ result = self.ec2.get_all_network_interfaces(network_interface_ids=['eni-0f62d866'])
+ self.assert_request_parameters({
+ 'Action': 'DescribeNetworkInterfaces',
+ 'NetworkInterfaceId.1': 'eni-0f62d866'},
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp',
+ 'Version'])
+ self.assertEqual(len(result), 1)
+ self.assertEqual(result[0].id, 'eni-0f62d866')
+
def test_attachment_has_device_index(self):
self.set_http_response(status_code=200)
parsed = self.ec2.get_all_network_interfaces()
@@ -968,7 +980,9 @@
"""
snaps = []
- # Generate some dates offset by days, weeks, months
+ # Generate some dates offset by days, weeks, months.
+ # This is to validate the various types of snapshot logic handled by
+ # ``trim_snapshots``.
now = datetime.now()
dates = [
now,
@@ -976,9 +990,14 @@
now - timedelta(days=2),
now - timedelta(days=7),
now - timedelta(days=14),
- datetime(now.year, now.month, 1) - timedelta(days=30),
- datetime(now.year, now.month, 1) - timedelta(days=60),
- datetime(now.year, now.month, 1) - timedelta(days=90)
+ # We want to simulate 30/60/90-day snapshots, but February is
+ # short (only 28 days), so we decrease the delta by 2 days apiece.
+ # This prevents the ``delete_snapshot`` code below from being
+ # called, since they don't fall outside the allowed timeframes
+ # for the snapshots.
+ datetime(now.year, now.month, 1) - timedelta(days=28),
+ datetime(now.year, now.month, 1) - timedelta(days=58),
+ datetime(now.year, now.month, 1) - timedelta(days=88)
]
for date in dates:
@@ -1246,8 +1265,46 @@
'SignatureVersion', 'Timestamp',
'Version'
])
+
+ def test_volume_delete_on_termination_on(self):
+ self.set_http_response(status_code=200)
+ self.ec2.register_image('name', 'description',
+ snapshot_id='snap-12345678',
+ delete_root_volume_on_termination=True)
+
+ self.assert_request_parameters({
+ 'Action': 'RegisterImage',
+ 'Name': 'name',
+ 'Description': 'description',
+ 'BlockDeviceMapping.1.DeviceName': None,
+ 'BlockDeviceMapping.1.Ebs.DeleteOnTermination' : 'true',
+ 'BlockDeviceMapping.1.Ebs.SnapshotId': 'snap-12345678',
+ }, ignore_params_values=[
+ 'AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp',
+ 'Version'
+ ])
+
+ def test_volume_delete_on_termination_default(self):
+ self.set_http_response(status_code=200)
+ self.ec2.register_image('name', 'description',
+ snapshot_id='snap-12345678')
+
+ self.assert_request_parameters({
+ 'Action': 'RegisterImage',
+ 'Name': 'name',
+ 'Description': 'description',
+ 'BlockDeviceMapping.1.DeviceName': None,
+ 'BlockDeviceMapping.1.Ebs.DeleteOnTermination' : 'false',
+ 'BlockDeviceMapping.1.Ebs.SnapshotId': 'snap-12345678',
+ }, ignore_params_values=[
+ 'AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp',
+ 'Version'
+ ])
+
class TestTerminateInstances(TestEC2ConnectionBase):
def default_body(self):
return """<?xml version="1.0" ?>
@@ -1290,6 +1347,18 @@
ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
'SignatureVersion', 'Timestamp', 'Version'])
+ self.ec2.get_all_reservations()
+ self.assert_request_parameters({
+ 'Action': 'DescribeInstances'},
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp', 'Version'])
+
+ self.ec2.get_only_instances()
+ self.assert_request_parameters({
+ 'Action': 'DescribeInstances'},
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp', 'Version'])
+
def test_max_results(self):
self.set_http_response(status_code=200)
self.ec2.get_all_instances(
@@ -1301,6 +1370,16 @@
ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
'SignatureVersion', 'Timestamp', 'Version'])
+ def test_next_token(self):
+ self.set_http_response(status_code=200)
+ self.ec2.get_all_reservations(
+ next_token='abcdefgh',
+ )
+ self.assert_request_parameters({
+ 'Action': 'DescribeInstances',
+ 'NextToken': 'abcdefgh'},
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp', 'Version'])
class TestDescribeTags(TestEC2ConnectionBase):
@@ -1400,5 +1479,157 @@
self.assertEqual(False, result)
+class TestDescribeVolumes(TestEC2ConnectionBase):
+ def default_body(self):
+ return """
+ <DescribeVolumesResponse xmlns="http://ec2.amazonaws.com/doc/2014-02-01/">
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
+ <volumeSet>
+ <item>
+ <volumeId>vol-1a2b3c4d</volumeId>
+ <size>80</size>
+ <snapshotId/>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <status>in-use</status>
+ <createTime>YYYY-MM-DDTHH:MM:SS.SSSZ</createTime>
+ <attachmentSet>
+ <item>
+ <volumeId>vol-1a2b3c4d</volumeId>
+ <instanceId>i-1a2b3c4d</instanceId>
+ <device>/dev/sdh</device>
+ <status>attached</status>
+ <attachTime>YYYY-MM-DDTHH:MM:SS.SSSZ</attachTime>
+ <deleteOnTermination>false</deleteOnTermination>
+ </item>
+ </attachmentSet>
+ <volumeType>standard</volumeType>
+ <encrypted>true</encrypted>
+ </item>
+ <item>
+ <volumeId>vol-5e6f7a8b</volumeId>
+ <size>80</size>
+ <snapshotId/>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <status>in-use</status>
+ <createTime>YYYY-MM-DDTHH:MM:SS.SSSZ</createTime>
+ <attachmentSet>
+ <item>
+ <volumeId>vol-5e6f7a8b</volumeId>
+ <instanceId>i-5e6f7a8b</instanceId>
+ <device>/dev/sdz</device>
+ <status>attached</status>
+ <attachTime>YYYY-MM-DDTHH:MM:SS.SSSZ</attachTime>
+ <deleteOnTermination>false</deleteOnTermination>
+ </item>
+ </attachmentSet>
+ <volumeType>standard</volumeType>
+ <encrypted>false</encrypted>
+ </item>
+ </volumeSet>
+ </DescribeVolumesResponse>
+ """
+
+ def test_get_all_volumes(self):
+ self.set_http_response(status_code=200)
+ result = self.ec2.get_all_volumes(volume_ids=['vol-1a2b3c4d', 'vol-5e6f7a8b'])
+ self.assert_request_parameters({
+ 'Action': 'DescribeVolumes',
+ 'VolumeId.1': 'vol-1a2b3c4d',
+ 'VolumeId.2': 'vol-5e6f7a8b'},
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp',
+ 'Version'])
+ self.assertEqual(len(result), 2)
+ self.assertEqual(result[0].id, 'vol-1a2b3c4d')
+ self.assertTrue(result[0].encrypted)
+ self.assertEqual(result[1].id, 'vol-5e6f7a8b')
+ self.assertFalse(result[1].encrypted)
+
+
+class TestDescribeSnapshots(TestEC2ConnectionBase):
+ def default_body(self):
+ return """
+ <DescribeSnapshotsResponse xmlns="http://ec2.amazonaws.com/doc/2014-02-01/">
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
+ <snapshotSet>
+ <item>
+ <snapshotId>snap-1a2b3c4d</snapshotId>
+ <volumeId>vol-1a2b3c4d</volumeId>
+ <status>pending</status>
+ <startTime>YYYY-MM-DDTHH:MM:SS.SSSZ</startTime>
+ <progress>80%</progress>
+ <ownerId>111122223333</ownerId>
+ <volumeSize>15</volumeSize>
+ <description>Daily Backup</description>
+ <tagSet/>
+ <encrypted>true</encrypted>
+ </item>
+ </snapshotSet>
+ <snapshotSet>
+ <item>
+ <snapshotId>snap-5e6f7a8b</snapshotId>
+ <volumeId>vol-5e6f7a8b</volumeId>
+ <status>completed</status>
+ <startTime>YYYY-MM-DDTHH:MM:SS.SSSZ</startTime>
+ <progress>100%</progress>
+ <ownerId>111122223333</ownerId>
+ <volumeSize>15</volumeSize>
+ <description>Daily Backup</description>
+ <tagSet/>
+ <encrypted>false</encrypted>
+ </item>
+ </snapshotSet>
+ </DescribeSnapshotsResponse>
+ """
+
+ def test_get_all_snapshots(self):
+ self.set_http_response(status_code=200)
+ result = self.ec2.get_all_snapshots(snapshot_ids=['snap-1a2b3c4d', 'snap-5e6f7a8b'])
+ self.assert_request_parameters({
+ 'Action': 'DescribeSnapshots',
+ 'SnapshotId.1': 'snap-1a2b3c4d',
+ 'SnapshotId.2': 'snap-5e6f7a8b'},
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp',
+ 'Version'])
+ self.assertEqual(len(result), 2)
+ self.assertEqual(result[0].id, 'snap-1a2b3c4d')
+ self.assertTrue(result[0].encrypted)
+ self.assertEqual(result[1].id, 'snap-5e6f7a8b')
+ self.assertFalse(result[1].encrypted)
+
+
+class TestCreateVolume(TestEC2ConnectionBase):
+ def default_body(self):
+ return """
+ <CreateVolumeResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
+ <volumeId>vol-1a2b3c4d</volumeId>
+ <size>80</size>
+ <snapshotId/>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <status>creating</status>
+ <createTime>YYYY-MM-DDTHH:MM:SS.000Z</createTime>
+ <volumeType>standard</volumeType>
+ <encrypted>true</encrypted>
+ </CreateVolumeResponse>
+ """
+
+ def test_create_volume(self):
+ self.set_http_response(status_code=200)
+ result = self.ec2.create_volume(80, 'us-east-1e', snapshot='snap-1a2b3c4d',
+ encrypted=True)
+ self.assert_request_parameters({
+ 'Action': 'CreateVolume',
+ 'AvailabilityZone': 'us-east-1e',
+ 'Size': 80,
+ 'SnapshotId': 'snap-1a2b3c4d',
+ 'Encrypted': 'true'},
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
+ 'SignatureVersion', 'Timestamp',
+ 'Version'])
+ self.assertEqual(result.id, 'vol-1a2b3c4d')
+ self.assertTrue(result.encrypted)
+
if __name__ == '__main__':
unittest.main()
« no previous file with comments | « third_party/boto/tests/unit/ec2/test_blockdevicemapping.py ('k') | third_party/boto/tests/unit/ec2/test_ec2object.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698