Example #1
0
    def test_get_volume(self, mock_boto3):
        """Test that a Volume is returned."""
        region = random.choice(helper.SOME_AWS_REGIONS)
        zone = helper.generate_dummy_availability_zone(region)
        volume_id = helper.generate_dummy_volume_id()
        mock_volume = helper.generate_mock_volume(volume_id=volume_id,
                                                  zone=zone)

        resource = mock_boto3.resource.return_value
        resource.Volume.return_value = mock_volume
        actual_volume = ec2.get_volume(volume_id, region)

        self.assertEqual(actual_volume, mock_volume)
Example #2
0
    def test_create_volume_snapshot_has_error(self, mock_boto3):
        """Test that volume creation aborts when snapshot has error."""
        zone = helper.generate_dummy_availability_zone()
        mock_snapshot = helper.generate_mock_snapshot(state='error')

        mock_ec2 = mock_boto3.resource.return_value
        mock_ec2.Snapshot.return_value = mock_snapshot

        with self.assertRaises(AwsSnapshotError):
            ec2.create_volume(mock_snapshot.snapshot_id, zone)

        mock_boto3.resource.assert_called_once_with('ec2')
        mock_ec2.create_volume.assert_not_called()
Example #3
0
    def test_create_volume_snapshot_not_ready(self, mock_boto3):
        """Test that volume creation aborts when snapshot is not ready."""
        zone = helper.generate_dummy_availability_zone()
        mock_snapshot = helper.generate_mock_snapshot(state='pending')

        mock_ec2 = mock_boto3.resource.return_value
        mock_ec2.Snapshot.return_value = mock_snapshot

        with self.assertRaises(SnapshotNotReadyException):
            ec2.create_volume(mock_snapshot.snapshot_id, zone)

        mock_boto3.resource.assert_called_once_with('ec2')
        mock_ec2.create_volume.assert_not_called()
Example #4
0
    def test_get_region_from_availability_zone(self, mock_client):
        """Assert that the proper region is returned for an AZ."""
        expected_region = test_helper.get_random_region()
        zone = test_helper.generate_dummy_availability_zone(expected_region)

        az_response = {
            "AvailabilityZones": [
                {"State": "available", "RegionName": expected_region, "ZoneName": zone}
            ]
        }

        mock_desc = mock_client.return_value.describe_availability_zones
        mock_desc.return_value = az_response

        actual_region = helper.get_region_from_availability_zone(zone)
        self.assertEqual(expected_region, actual_region)
Example #5
0
    def test_create_volume_snapshot_ready(self, mock_boto3):
        """Test that volume creation starts when snapshot is ready."""
        zone = helper.generate_dummy_availability_zone()
        mock_snapshot = helper.generate_mock_snapshot()
        mock_volume = helper.generate_mock_volume()

        mock_ec2 = mock_boto3.resource.return_value
        mock_ec2.Snapshot.return_value = mock_snapshot
        mock_ec2.create_volume.return_value = mock_volume

        volume_id = ec2.create_volume(mock_snapshot.snapshot_id, zone)

        mock_ec2.create_volume.assert_called_with(
            SnapshotId=mock_snapshot.snapshot_id, AvailabilityZone=zone)

        mock_boto3.resource.assert_called_once_with('ec2')
        self.assertEqual(volume_id, mock_volume.id)
Example #6
0
    def test_get_region_from_availability_zone(self, mock_client):
        """Assert that the proper region is returned for an AZ."""
        expected_region = random.choice(test_helper.SOME_AWS_REGIONS)
        zone = test_helper.generate_dummy_availability_zone(expected_region)

        az_response = {
            'AvailabilityZones': [{
                'State': 'available',
                'RegionName': expected_region,
                'ZoneName': zone
            }]
        }

        mock_desc = mock_client.return_value.describe_availability_zones
        mock_desc.return_value = az_response

        actual_region = helper.get_region_from_availability_zone(zone)
        self.assertEqual(expected_region, actual_region)
Example #7
0
 def test_generate_dummy_availability_zone_with_region(self):
     """Assert region is used to generate availability zone."""
     region = random.choice(helper.SOME_AWS_REGIONS)
     zone = helper.generate_dummy_availability_zone(region)
     self.assertEqual(zone[:-1], region)
Example #8
0
 def test_generate_dummy_availability_zone(self):
     """Assert generation of an appropriate availability zone."""
     zone = helper.generate_dummy_availability_zone()
     self.assertIn(zone[:-1], helper.SOME_AWS_REGIONS)
Example #9
0
 def test_generate_dummy_availability_zone_with_region(self):
     """Assert region is used to generate availability zone."""
     region = helper.get_random_region()
     zone = helper.generate_dummy_availability_zone(region)
     self.assertEqual(zone[:-1], region)