Merge "Port test_volume to Python 3"

This commit is contained in:
Jenkins 2015-10-01 02:56:29 +00:00 committed by Gerrit Code Review
commit ae370d9ac9
7 changed files with 29 additions and 20 deletions

@ -27,6 +27,7 @@ this class.
"""
import array
import binascii
import uuid
from cinder import exception
@ -54,14 +55,14 @@ class MockKeyManager(key_mgr.KeyManager):
def _generate_hex_key(self, **kwargs):
key_length = kwargs.get('key_length', 256)
# hex digit => 4 bits
hex_encoded = utils.generate_password(length=key_length / 4,
hex_encoded = utils.generate_password(length=key_length // 4,
symbolgroups='0123456789ABCDEF')
return hex_encoded
def _generate_key(self, **kwargs):
_hex = self._generate_hex_key(**kwargs)
return key.SymmetricKey('AES',
array.array('B', _hex.decode('hex')).tolist())
key_bytes = array.array('B', binascii.unhexlify(_hex)).tolist()
return key.SymmetricKey('AES', key_bytes)
def create_key(self, ctxt, **kwargs):
"""Creates a key.

@ -46,14 +46,14 @@ class MockKeyManagerTestCase(test_key_mgr.KeyManagerTestCase):
for length in [64, 128, 256]:
key_id = self.key_mgr.create_key(self.ctxt, key_length=length)
key = self.key_mgr.get_key(self.ctxt, key_id)
self.assertEqual(length / 8, len(key.get_encoded()))
self.assertEqual(length // 8, len(key.get_encoded()))
def test_create_null_context(self):
self.assertRaises(exception.NotAuthorized,
self.key_mgr.create_key, None)
def test_store_key(self):
secret_key = array.array('B', ('0' * 64).decode('hex')).tolist()
secret_key = array.array('B', b'\x00' * 32).tolist()
_key = keymgr_key.SymmetricKey('AES', secret_key)
key_id = self.key_mgr.store_key(self.ctxt, _key)

@ -64,6 +64,7 @@ from cinder.volume import driver
from cinder.volume.drivers import lvm
from cinder.volume import manager as vol_manager
from cinder.volume import rpcapi as volume_rpcapi
import cinder.volume.targets.tgt
from cinder.volume import utils as volutils
from cinder.volume import volume_types
@ -239,15 +240,18 @@ class AvailabilityZoneTestCase(BaseVolumeTestCase):
self.stubs.Set(db, 'service_get_all_by_topic',
stub_service_get_all_by_topic)
def sort_func(obj):
return obj['name']
volume_api = cinder.volume.api.API()
azs = volume_api.list_availability_zones()
azs = list(azs).sort()
azs = sorted(azs, key=sort_func)
expected = [
expected = sorted([
{'name': 'pung', 'available': False},
{'name': 'pong', 'available': True},
{'name': 'ping', 'available': True},
].sort()
], key=sort_func)
self.assertEqual(expected, azs)
@ -4165,6 +4169,9 @@ class VolumeTestCase(BaseVolumeTestCase):
self.volume.create_volume(self.context, volume['id'])
volume['status'] = 'in-use'
def sort_func(obj):
return obj['name']
volume_api = cinder.volume.api.API()
# Update fails when status != available
@ -6047,7 +6054,7 @@ class GenericVolumeDriverTestCase(DriverTestCase):
mock_volume_get.return_value = vol
mock_get_connector_properties.return_value = properties
f = mock_file_open.return_value = file('/dev/null')
f = mock_file_open.return_value = open('/dev/null', 'rb')
backup_service.backup(backup_obj, f, None)
self.volume.driver._attach_volume.return_value = attach_info, vol
@ -6088,7 +6095,7 @@ class GenericVolumeDriverTestCase(DriverTestCase):
mock_volume_get.return_value = vol
self.volume.driver._create_temp_cloned_volume.return_value = temp_vol
mock_get_connector_properties.return_value = properties
f = mock_file_open.return_value = file('/dev/null')
f = mock_file_open.return_value = open('/dev/null', 'rb')
backup_service.backup(backup_obj, f, None)
self.volume.driver._attach_volume.return_value = attach_info, vol
@ -6146,7 +6153,7 @@ class GenericVolumeDriverTestCase(DriverTestCase):
mock_volume_get.return_value = vol
mock_connect_volume.return_value = {'type': 'local',
'path': '/dev/null'}
f = mock_file_open.return_value = file('/dev/null')
f = mock_file_open.return_value = open('/dev/null', 'rb')
self.volume.driver._connect_device
backup_service.backup(backup_obj, f, None)
@ -6945,7 +6952,7 @@ class LVMVolumeDriverTestCase(DriverTestCase):
mock_volume_get.return_value = vol
mock_get_connector_properties.return_value = properties
f = mock_file_open.return_value = file('/dev/null')
f = mock_file_open.return_value = open('/dev/null', 'rb')
backup_service.backup(backup_obj, f, None)
self.volume.driver._attach_volume.return_value = attach_info
@ -7024,7 +7031,7 @@ class LVMVolumeDriverTestCase(DriverTestCase):
self.volume.driver._delete_temp_snapshot = mock.MagicMock()
mock_get_connector_properties.return_value = properties
f = mock_file_open.return_value = file('/dev/null')
f = mock_file_open.return_value = open('/dev/null', 'rb')
backup_service.backup(backup_obj, f, None)
self.volume.driver._attach_volume.return_value = attach_info

@ -798,7 +798,7 @@ class API(base.Base):
except Exception:
with excutils.save_and_reraise_exception():
try:
if hasattr(snapshot, 'id'):
if snapshot.obj_attr_is_set('id'):
snapshot.destroy()
finally:
QUOTAS.rollback(context, reservations)

@ -207,7 +207,7 @@ class ExtractVolumeRequestTask(flow_utils.CinderTask):
# Check image size is not larger than volume size.
image_size = utils.as_int(image_meta['size'], quiet=False)
image_size_in_gb = (image_size + GB - 1) / GB
image_size_in_gb = (image_size + GB - 1) // GB
if image_size_in_gb > size:
msg = _('Size of specified image %(image_size)sGB'
' is larger than volume size %(volume_size)sGB.')

@ -2482,8 +2482,8 @@ class VolumeManager(manager.SchedulerDependentManager):
sorted_snapshots = []
for vol in volumes:
found_snaps = filter(
lambda snap: snap['id'] == vol['snapshot_id'], snapshots)
found_snaps = [snap for snap in snapshots
if snap['id'] == vol['snapshot_id']]
if not found_snaps:
LOG.error(_LE("Source snapshot cannot be found for target "
"volume %(volume_id)s."),
@ -2505,9 +2505,8 @@ class VolumeManager(manager.SchedulerDependentManager):
sorted_source_vols = []
for vol in volumes:
found_source_vols = filter(
lambda source_vol: source_vol['id'] == vol['source_volid'],
source_vols)
found_source_vols = [source_vol for source_vol in source_vols
if source_vol['id'] == vol['source_volid']]
if not found_source_vols:
LOG.error(_LE("Source volumes cannot be found for target "
"volume %(volume_id)s."),

@ -30,6 +30,7 @@ downloadcache = ~/cache/pip
commands =
python -m testtools.run \
cinder.tests.unit.image.test_glance \
cinder.tests.unit.keymgr.test_mock_key_mgr \
cinder.tests.unit.targets.test_base_iscsi_driver \
cinder.tests.unit.targets.test_cxt_driver \
cinder.tests.unit.targets.test_iser_driver \
@ -98,6 +99,7 @@ commands =
cinder.tests.unit.test_v6000_common \
cinder.tests.unit.test_vmware_vmdk \
cinder.tests.unit.test_vmware_volumeops \
cinder.tests.unit.test_volume \
cinder.tests.unit.test_volume_configuration \
cinder.tests.unit.test_volume_glance_metadata \
cinder.tests.unit.test_volume_rpcapi \