'Test create volume from a non-existing image.
Verify that create volume from a non-existing image, the volume
status is \'error\' and is not bootable.'

def test_create_volume_from_image_exception(self):

    (dst_fd, dst_path) = tempfile.mkstemp()
    os.close(dst_fd)
    self.mock_object(self.volume.driver, 'local_path', (lambda x: dst_path))
    kwargs = {'display_description': 'Test    Desc', 'size': 20, 'availability_zone': 'fake_availability_zone', 'status': 'creating', 'attach_status': fields.VolumeAttachStatus.DETACHED, 'host': 'dummy'}
    volume = objects.Volume(context=self.context, **kwargs)
    volume.create()
    self.assertRaises(exception.ImageNotFound, self.volume.create_volume, self.context, volume, {'image_id': NON_EXISTENT_IMAGE_ID})
    volume = objects.Volume.get_by_id(self.context, volume.id)
    self.assertEqual('error', volume['status'])
    self.assertFalse(volume['bootable'])
    volume.destroy()
    os.unlink(dst_path)
