tests: Remove unnecessary nesting of volume resources
Change-Id: I210ce7534d161e89115e5cb96e42ab7f27170aa1 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
d7f431be50
commit
1aaaa6f1d1
openstackclient/tests/unit
common
compute/v2
volume
v1
fakes.pytest_qos_specs.pytest_service.pytest_transfer_request.pytest_type.pytest_volume.pytest_volume_backup.py
v2
fakes.pytest_backup_record.pytest_consistency_group.pytest_consistency_group_snapshot.pytest_qos_specs.pytest_service.pytest_type.pytest_volume.pytest_volume_backend.pytest_volume_backup.pytest_volume_host.pytest_volume_snapshot.pytest_volume_transfer_request.py
v3
@ -78,7 +78,7 @@ def _build_network_az_datalist(network_az, long_datalist=False):
|
|||||||
class TestAvailabilityZone(utils.TestCommand):
|
class TestAvailabilityZone(utils.TestCommand):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestAvailabilityZone, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
compute_client = compute_fakes.FakeComputev2Client(
|
compute_client = compute_fakes.FakeComputev2Client(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL,
|
||||||
@ -113,8 +113,7 @@ class TestAvailabilityZoneList(TestAvailabilityZone):
|
|||||||
|
|
||||||
compute_azs = \
|
compute_azs = \
|
||||||
compute_fakes.FakeAvailabilityZone.create_availability_zones()
|
compute_fakes.FakeAvailabilityZone.create_availability_zones()
|
||||||
volume_azs = \
|
volume_azs = volume_fakes.create_availability_zones(count=1)
|
||||||
volume_fakes.FakeAvailabilityZone.create_availability_zones(count=1)
|
|
||||||
network_azs = network_fakes.create_availability_zones()
|
network_azs = network_fakes.create_availability_zones()
|
||||||
|
|
||||||
short_columnslist = ('Zone Name', 'Zone Status')
|
short_columnslist = ('Zone Name', 'Zone Status')
|
||||||
@ -128,7 +127,7 @@ class TestAvailabilityZoneList(TestAvailabilityZone):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestAvailabilityZoneList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.compute_azs_mock.list.return_value = self.compute_azs
|
self.compute_azs_mock.list.return_value = self.compute_azs
|
||||||
self.volume_azs_mock.list.return_value = self.volume_azs
|
self.volume_azs_mock.list.return_value = self.volume_azs
|
||||||
|
@ -26,7 +26,7 @@ from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
|
|||||||
class TestExtension(utils.TestCommand):
|
class TestExtension(utils.TestCommand):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestExtension, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
identity_client = identity_fakes.FakeIdentityv2Client(
|
identity_client = identity_fakes.FakeIdentityv2Client(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL,
|
||||||
@ -66,13 +66,13 @@ class TestExtensionList(TestExtension):
|
|||||||
long_columns = ('Name', 'Alias', 'Description', 'Namespace', 'Updated',
|
long_columns = ('Name', 'Alias', 'Description', 'Namespace', 'Updated',
|
||||||
'Links')
|
'Links')
|
||||||
|
|
||||||
volume_extension = volume_fakes.FakeExtension.create_one_extension()
|
volume_extension = volume_fakes.create_one_extension()
|
||||||
identity_extension = identity_fakes.FakeExtension.create_one_extension()
|
identity_extension = identity_fakes.FakeExtension.create_one_extension()
|
||||||
compute_extension = compute_fakes.FakeExtension.create_one_extension()
|
compute_extension = compute_fakes.FakeExtension.create_one_extension()
|
||||||
network_extension = network_fakes.FakeExtension.create_one_extension()
|
network_extension = network_fakes.FakeExtension.create_one_extension()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestExtensionList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.identity_extensions_mock.list.return_value = [
|
self.identity_extensions_mock.list.return_value = [
|
||||||
self.identity_extension]
|
self.identity_extension]
|
||||||
@ -310,7 +310,7 @@ class TestExtensionShow(TestExtension):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestExtensionShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.cmd = extension.ShowExtension(self.app, None)
|
self.cmd = extension.ShowExtension(self.app, None)
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ class TestComputeLimits(compute_fakes.TestComputev2):
|
|||||||
]
|
]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestComputeLimits, self).setUp()
|
super().setUp()
|
||||||
self.app.client_manager.volume_endpoint_enabled = False
|
self.app.client_manager.volume_endpoint_enabled = False
|
||||||
self.compute = self.app.client_manager.compute
|
self.compute = self.app.client_manager.compute
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ class TestVolumeLimits(volume_fakes.TestVolume):
|
|||||||
]
|
]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeLimits, self).setUp()
|
super().setUp()
|
||||||
self.app.client_manager.compute_endpoint_enabled = False
|
self.app.client_manager.compute_endpoint_enabled = False
|
||||||
self.volume = self.app.client_manager.volume
|
self.volume = self.app.client_manager.volume
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
|
|||||||
class TestProjectPurgeInit(tests_utils.TestCommand):
|
class TestProjectPurgeInit(tests_utils.TestCommand):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestProjectPurgeInit, self).setUp()
|
super().setUp()
|
||||||
compute_client = compute_fakes.FakeComputev2Client(
|
compute_client = compute_fakes.FakeComputev2Client(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL,
|
||||||
token=fakes.AUTH_TOKEN,
|
token=fakes.AUTH_TOKEN,
|
||||||
@ -71,12 +71,12 @@ class TestProjectPurge(TestProjectPurgeInit):
|
|||||||
project = identity_fakes.FakeProject.create_one_project()
|
project = identity_fakes.FakeProject.create_one_project()
|
||||||
server = compute_fakes.FakeServer.create_one_server()
|
server = compute_fakes.FakeServer.create_one_server()
|
||||||
image = image_fakes.create_one_image()
|
image = image_fakes.create_one_image()
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
backup = volume_fakes.FakeBackup.create_one_backup()
|
backup = volume_fakes.create_one_backup()
|
||||||
snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
|
snapshot = volume_fakes.create_one_snapshot()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestProjectPurge, self).setUp()
|
super().setUp()
|
||||||
self.projects_mock.get.return_value = self.project
|
self.projects_mock.get.return_value = self.project
|
||||||
self.projects_mock.delete.return_value = None
|
self.projects_mock.delete.return_value = None
|
||||||
self.images_mock.list.return_value = [self.image]
|
self.images_mock.list.return_value = [self.image]
|
||||||
|
@ -176,12 +176,12 @@ class TestQuotaList(TestQuota):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.volume_quotas = [
|
self.volume_quotas = [
|
||||||
volume_fakes.FakeQuota.create_one_vol_quota(),
|
volume_fakes.create_one_vol_quota(),
|
||||||
volume_fakes.FakeQuota.create_one_vol_quota(),
|
volume_fakes.create_one_vol_quota(),
|
||||||
]
|
]
|
||||||
self.volume_default_quotas = [
|
self.volume_default_quotas = [
|
||||||
volume_fakes.FakeQuota.create_one_default_vol_quota(),
|
volume_fakes.create_one_default_vol_quota(),
|
||||||
volume_fakes.FakeQuota.create_one_default_vol_quota(),
|
volume_fakes.create_one_default_vol_quota(),
|
||||||
]
|
]
|
||||||
self.volume = self.app.client_manager.volume
|
self.volume = self.app.client_manager.volume
|
||||||
self.volume.quotas.defaults = mock.Mock(
|
self.volume.quotas.defaults = mock.Mock(
|
||||||
@ -280,8 +280,7 @@ class TestQuotaList(TestQuota):
|
|||||||
sorted(detailed_reference_data), sorted(ret_quotas))
|
sorted(detailed_reference_data), sorted(ret_quotas))
|
||||||
|
|
||||||
def test_quota_list_details_volume(self):
|
def test_quota_list_details_volume(self):
|
||||||
detailed_quota = (
|
detailed_quota = volume_fakes.create_one_detailed_quota()
|
||||||
volume_fakes.FakeQuota.create_one_detailed_quota())
|
|
||||||
|
|
||||||
detailed_column_header = (
|
detailed_column_header = (
|
||||||
'Resource',
|
'Resource',
|
||||||
@ -567,7 +566,7 @@ class TestQuotaList(TestQuota):
|
|||||||
self.volume.quotas.get = mock.Mock(
|
self.volume.quotas.get = mock.Mock(
|
||||||
side_effect=[
|
side_effect=[
|
||||||
self.volume_quotas[0],
|
self.volume_quotas[0],
|
||||||
volume_fakes.FakeQuota.create_one_default_vol_quota(),
|
volume_fakes.create_one_default_vol_quota(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -591,7 +590,7 @@ class TestQuotaList(TestQuota):
|
|||||||
self.volume.quotas.get = mock.Mock(
|
self.volume.quotas.get = mock.Mock(
|
||||||
side_effect=[
|
side_effect=[
|
||||||
self.volume_quotas[0],
|
self.volume_quotas[0],
|
||||||
volume_fakes.FakeQuota.create_one_default_vol_quota(),
|
volume_fakes.create_one_default_vol_quota(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1046,10 +1045,9 @@ class TestQuotaShow(TestQuota):
|
|||||||
loaded=True,
|
loaded=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.volume_quota = volume_fakes.FakeQuota.create_one_vol_quota()
|
self.volume_quota = volume_fakes.create_one_vol_quota()
|
||||||
self.volume_quotas_mock.get.return_value = self.volume_quota
|
self.volume_quotas_mock.get.return_value = self.volume_quota
|
||||||
self.volume_default_quota = \
|
self.volume_default_quota = volume_fakes.create_one_default_vol_quota()
|
||||||
volume_fakes.FakeQuota.create_one_default_vol_quota()
|
|
||||||
self.volume_quotas_mock.defaults.return_value = \
|
self.volume_quotas_mock.defaults.return_value = \
|
||||||
self.volume_default_quota
|
self.volume_default_quota
|
||||||
self.volume_quotas_class_mock.get.return_value = FakeQuotaResource(
|
self.volume_quotas_class_mock.get.return_value = FakeQuotaResource(
|
||||||
@ -1217,8 +1215,7 @@ class TestQuotaShow(TestQuota):
|
|||||||
self.compute_quota = \
|
self.compute_quota = \
|
||||||
compute_fakes.FakeQuota.create_one_comp_detailed_quota()
|
compute_fakes.FakeQuota.create_one_comp_detailed_quota()
|
||||||
self.compute_quotas_mock.get.return_value = self.compute_quota
|
self.compute_quotas_mock.get.return_value = self.compute_quota
|
||||||
self.volume_quota = \
|
self.volume_quota = volume_fakes.create_one_detailed_quota()
|
||||||
volume_fakes.FakeQuota.create_one_detailed_quota()
|
|
||||||
self.volume_quotas_mock.get.return_value = self.volume_quota
|
self.volume_quotas_mock.get.return_value = self.volume_quota
|
||||||
self.network.get_quota.return_value = \
|
self.network.get_quota.return_value = \
|
||||||
network_fakes.FakeQuota.create_one_net_detailed_quota()
|
network_fakes.FakeQuota.create_one_net_detailed_quota()
|
||||||
|
@ -153,7 +153,7 @@ class TestServer(compute_fakes.TestComputev2):
|
|||||||
return servers
|
return servers
|
||||||
|
|
||||||
def setup_sdk_volumes_mock(self, count):
|
def setup_sdk_volumes_mock(self, count):
|
||||||
volumes = volume_fakes.FakeVolume.create_sdk_volumes(count=count)
|
volumes = volume_fakes.create_sdk_volumes(count=count)
|
||||||
|
|
||||||
# This is the return value for volume_client.find_volume()
|
# This is the return value for volume_client.find_volume()
|
||||||
self.sdk_volume_client.find_volume.side_effect = volumes
|
self.sdk_volume_client.find_volume.side_effect = volumes
|
||||||
@ -1444,10 +1444,10 @@ class TestServerCreate(TestServer):
|
|||||||
self.flavor = compute_fakes.FakeFlavor.create_one_flavor()
|
self.flavor = compute_fakes.FakeFlavor.create_one_flavor()
|
||||||
self.flavors_mock.get.return_value = self.flavor
|
self.flavors_mock.get.return_value = self.flavor
|
||||||
|
|
||||||
self.volume = volume_fakes.FakeVolume.create_one_volume()
|
self.volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.get.return_value = self.volume
|
self.volumes_mock.get.return_value = self.volume
|
||||||
|
|
||||||
self.snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
|
self.snapshot = volume_fakes.create_one_snapshot()
|
||||||
self.snapshots_mock.get.return_value = self.snapshot
|
self.snapshots_mock.get.return_value = self.snapshot
|
||||||
|
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
|
@ -24,7 +24,6 @@ from openstackclient.tests.unit import utils
|
|||||||
|
|
||||||
|
|
||||||
class FakeVolumev1Client:
|
class FakeVolumev1Client:
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.volumes = mock.Mock()
|
self.volumes = mock.Mock()
|
||||||
self.volumes.resource_class = fakes.FakeResource(None, {})
|
self.volumes.resource_class = fakes.FakeResource(None, {})
|
||||||
@ -37,8 +36,9 @@ class FakeVolumev1Client:
|
|||||||
self.volume_types = mock.Mock()
|
self.volume_types = mock.Mock()
|
||||||
self.volume_types.resource_class = fakes.FakeResource(None, {})
|
self.volume_types.resource_class = fakes.FakeResource(None, {})
|
||||||
self.volume_encryption_types = mock.Mock()
|
self.volume_encryption_types = mock.Mock()
|
||||||
self.volume_encryption_types.resource_class = (
|
self.volume_encryption_types.resource_class = fakes.FakeResource(
|
||||||
fakes.FakeResource(None, {}))
|
None, {}
|
||||||
|
)
|
||||||
self.transfers = mock.Mock()
|
self.transfers = mock.Mock()
|
||||||
self.transfers.resource_class = fakes.FakeResource(None, {})
|
self.transfers.resource_class = fakes.FakeResource(None, {})
|
||||||
self.volume_snapshots = mock.Mock()
|
self.volume_snapshots = mock.Mock()
|
||||||
@ -52,7 +52,6 @@ class FakeVolumev1Client:
|
|||||||
|
|
||||||
|
|
||||||
class TestVolumev1(utils.TestCommand):
|
class TestVolumev1(utils.TestCommand):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
@ -75,11 +74,7 @@ class TestVolumev1(utils.TestCommand):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class FakeTransfer(object):
|
def create_one_transfer(attrs=None):
|
||||||
"""Fake one or more Transfer."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_transfer(attrs=None):
|
|
||||||
"""Create a fake transfer.
|
"""Create a fake transfer.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -100,15 +95,12 @@ class FakeTransfer(object):
|
|||||||
|
|
||||||
transfer_info.update(attrs)
|
transfer_info.update(attrs)
|
||||||
|
|
||||||
transfer = fakes.FakeResource(
|
transfer = fakes.FakeResource(None, transfer_info, loaded=True)
|
||||||
None,
|
|
||||||
transfer_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return transfer
|
return transfer
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_transfers(attrs=None, count=2):
|
def create_transfers(attrs=None, count=2):
|
||||||
"""Create multiple fake transfers.
|
"""Create multiple fake transfers.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -120,12 +112,12 @@ class FakeTransfer(object):
|
|||||||
"""
|
"""
|
||||||
transfers = []
|
transfers = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
transfers.append(FakeTransfer.create_one_transfer(attrs))
|
transfers.append(create_one_transfer(attrs))
|
||||||
|
|
||||||
return transfers
|
return transfers
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_transfers(transfers=None, count=2):
|
def get_transfers(transfers=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked transfers.
|
"""Get an iterable MagicMock object with a list of faked transfers.
|
||||||
|
|
||||||
If transfers list is provided, then initialize the Mock object with the
|
If transfers list is provided, then initialize the Mock object with the
|
||||||
@ -140,16 +132,12 @@ class FakeTransfer(object):
|
|||||||
transfers
|
transfers
|
||||||
"""
|
"""
|
||||||
if transfers is None:
|
if transfers is None:
|
||||||
transfers = FakeTransfer.create_transfers(count)
|
transfers = create_transfers(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=transfers)
|
return mock.Mock(side_effect=transfers)
|
||||||
|
|
||||||
|
|
||||||
class FakeService(object):
|
def create_one_service(attrs=None):
|
||||||
"""Fake one or more Services."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_service(attrs=None):
|
|
||||||
"""Create a fake service.
|
"""Create a fake service.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -173,15 +161,12 @@ class FakeService(object):
|
|||||||
|
|
||||||
service_info.update(attrs)
|
service_info.update(attrs)
|
||||||
|
|
||||||
service = fakes.FakeResource(
|
service = fakes.FakeResource(None, service_info, loaded=True)
|
||||||
None,
|
|
||||||
service_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return service
|
return service
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_services(attrs=None, count=2):
|
def create_services(attrs=None, count=2):
|
||||||
"""Create multiple fake services.
|
"""Create multiple fake services.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -193,12 +178,12 @@ class FakeService(object):
|
|||||||
"""
|
"""
|
||||||
services = []
|
services = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
services.append(FakeService.create_one_service(attrs))
|
services.append(create_one_service(attrs))
|
||||||
|
|
||||||
return services
|
return services
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_services(services=None, count=2):
|
def get_services(services=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked services.
|
"""Get an iterable MagicMock object with a list of faked services.
|
||||||
|
|
||||||
If services list is provided, then initialize the Mock object with the
|
If services list is provided, then initialize the Mock object with the
|
||||||
@ -213,16 +198,12 @@ class FakeService(object):
|
|||||||
services
|
services
|
||||||
"""
|
"""
|
||||||
if services is None:
|
if services is None:
|
||||||
services = FakeService.create_services(count)
|
services = create_services(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=services)
|
return mock.Mock(side_effect=services)
|
||||||
|
|
||||||
|
|
||||||
class FakeQos(object):
|
def create_one_qos(attrs=None):
|
||||||
"""Fake one or more Qos specification."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_qos(attrs=None):
|
|
||||||
"""Create a fake Qos specification.
|
"""Create a fake Qos specification.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -243,13 +224,11 @@ class FakeQos(object):
|
|||||||
# Overwrite default attributes.
|
# Overwrite default attributes.
|
||||||
qos_info.update(attrs)
|
qos_info.update(attrs)
|
||||||
|
|
||||||
qos = fakes.FakeResource(
|
qos = fakes.FakeResource(info=copy.deepcopy(qos_info), loaded=True)
|
||||||
info=copy.deepcopy(qos_info),
|
|
||||||
loaded=True)
|
|
||||||
return qos
|
return qos
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_qos_association(attrs=None):
|
def create_one_qos_association(attrs=None):
|
||||||
"""Create a fake Qos specification association.
|
"""Create a fake Qos specification association.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -270,12 +249,12 @@ class FakeQos(object):
|
|||||||
qos_association_info.update(attrs)
|
qos_association_info.update(attrs)
|
||||||
|
|
||||||
qos_association = fakes.FakeResource(
|
qos_association = fakes.FakeResource(
|
||||||
info=copy.deepcopy(qos_association_info),
|
info=copy.deepcopy(qos_association_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return qos_association
|
return qos_association
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_qoses(attrs=None, count=2):
|
def create_qoses(attrs=None, count=2):
|
||||||
"""Create multiple fake Qos specifications.
|
"""Create multiple fake Qos specifications.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -287,13 +266,13 @@ class FakeQos(object):
|
|||||||
"""
|
"""
|
||||||
qoses = []
|
qoses = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
qos = FakeQos.create_one_qos(attrs)
|
qos = create_one_qos(attrs)
|
||||||
qoses.append(qos)
|
qoses.append(qos)
|
||||||
|
|
||||||
return qoses
|
return qoses
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_qoses(qoses=None, count=2):
|
def get_qoses(qoses=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked qoses.
|
"""Get an iterable MagicMock object with a list of faked qoses.
|
||||||
|
|
||||||
If qoses list is provided, then initialize the Mock object with the
|
If qoses list is provided, then initialize the Mock object with the
|
||||||
@ -308,16 +287,12 @@ class FakeQos(object):
|
|||||||
qoses
|
qoses
|
||||||
"""
|
"""
|
||||||
if qoses is None:
|
if qoses is None:
|
||||||
qoses = FakeQos.create_qoses(count)
|
qoses = create_qoses(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=qoses)
|
return mock.Mock(side_effect=qoses)
|
||||||
|
|
||||||
|
|
||||||
class FakeVolume(object):
|
def create_one_volume(attrs=None):
|
||||||
"""Fake one or more volumes."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume(attrs=None):
|
|
||||||
"""Create a fake volume.
|
"""Create a fake volume.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -334,33 +309,32 @@ class FakeVolume(object):
|
|||||||
'display_description': 'description' + uuid.uuid4().hex,
|
'display_description': 'description' + uuid.uuid4().hex,
|
||||||
'status': 'available',
|
'status': 'available',
|
||||||
'size': 10,
|
'size': 10,
|
||||||
'volume_type':
|
'volume_type': random.choice(['fake_lvmdriver-1', 'fake_lvmdriver-2']),
|
||||||
random.choice(['fake_lvmdriver-1', 'fake_lvmdriver-2']),
|
|
||||||
'bootable': 'true',
|
'bootable': 'true',
|
||||||
'metadata': {
|
'metadata': {
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex},
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
|
},
|
||||||
'snapshot_id': 'snapshot-id-' + uuid.uuid4().hex,
|
'snapshot_id': 'snapshot-id-' + uuid.uuid4().hex,
|
||||||
'availability_zone': 'zone' + uuid.uuid4().hex,
|
'availability_zone': 'zone' + uuid.uuid4().hex,
|
||||||
'attachments': [{
|
'attachments': [
|
||||||
|
{
|
||||||
'device': '/dev/' + uuid.uuid4().hex,
|
'device': '/dev/' + uuid.uuid4().hex,
|
||||||
'server_id': uuid.uuid4().hex,
|
'server_id': uuid.uuid4().hex,
|
||||||
}, ],
|
},
|
||||||
|
],
|
||||||
'created_at': 'time-' + uuid.uuid4().hex,
|
'created_at': 'time-' + uuid.uuid4().hex,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
volume_info.update(attrs)
|
volume_info.update(attrs)
|
||||||
|
|
||||||
volume = fakes.FakeResource(
|
volume = fakes.FakeResource(None, volume_info, loaded=True)
|
||||||
None,
|
|
||||||
volume_info,
|
|
||||||
loaded=True)
|
|
||||||
return volume
|
return volume
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volumes(attrs=None, count=2):
|
def create_volumes(attrs=None, count=2):
|
||||||
"""Create multiple fake volumes.
|
"""Create multiple fake volumes.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -372,12 +346,12 @@ class FakeVolume(object):
|
|||||||
"""
|
"""
|
||||||
volumes = []
|
volumes = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
volumes.append(FakeVolume.create_one_volume(attrs))
|
volumes.append(create_one_volume(attrs))
|
||||||
|
|
||||||
return volumes
|
return volumes
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volumes(volumes=None, count=2):
|
def get_volumes(volumes=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked volumes.
|
"""Get an iterable MagicMock object with a list of faked volumes.
|
||||||
|
|
||||||
If volumes list is provided, then initialize the Mock object with the
|
If volumes list is provided, then initialize the Mock object with the
|
||||||
@ -392,16 +366,12 @@ class FakeVolume(object):
|
|||||||
volumes
|
volumes
|
||||||
"""
|
"""
|
||||||
if volumes is None:
|
if volumes is None:
|
||||||
volumes = FakeVolume.create_volumes(count)
|
volumes = create_volumes(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=volumes)
|
return mock.Mock(side_effect=volumes)
|
||||||
|
|
||||||
|
|
||||||
class FakeVolumeType(object):
|
def create_one_volume_type(attrs=None, methods=None):
|
||||||
"""Fake one or more type."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume_type(attrs=None, methods=None):
|
|
||||||
"""Create a fake volume type.
|
"""Create a fake volume type.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -427,13 +397,12 @@ class FakeVolumeType(object):
|
|||||||
volume_type_info.update(attrs)
|
volume_type_info.update(attrs)
|
||||||
|
|
||||||
volume_type = fakes.FakeResource(
|
volume_type = fakes.FakeResource(
|
||||||
info=copy.deepcopy(volume_type_info),
|
info=copy.deepcopy(volume_type_info), methods=methods, loaded=True
|
||||||
methods=methods,
|
)
|
||||||
loaded=True)
|
|
||||||
return volume_type
|
return volume_type
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volume_types(attrs=None, count=2):
|
def create_volume_types(attrs=None, count=2):
|
||||||
"""Create multiple fake types.
|
"""Create multiple fake types.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -445,13 +414,13 @@ class FakeVolumeType(object):
|
|||||||
"""
|
"""
|
||||||
volume_types = []
|
volume_types = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
volume_type = FakeVolumeType.create_one_volume_type(attrs)
|
volume_type = create_one_volume_type(attrs)
|
||||||
volume_types.append(volume_type)
|
volume_types.append(volume_type)
|
||||||
|
|
||||||
return volume_types
|
return volume_types
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volume_types(volume_types=None, count=2):
|
def get_volume_types(volume_types=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked types.
|
"""Get an iterable MagicMock object with a list of faked types.
|
||||||
|
|
||||||
If types list is provided, then initialize the Mock object with the
|
If types list is provided, then initialize the Mock object with the
|
||||||
@ -466,12 +435,12 @@ class FakeVolumeType(object):
|
|||||||
types
|
types
|
||||||
"""
|
"""
|
||||||
if volume_types is None:
|
if volume_types is None:
|
||||||
volume_types = FakeVolumeType.create_volume_types(count)
|
volume_types = create_volume_types(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=volume_types)
|
return mock.Mock(side_effect=volume_types)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_encryption_volume_type(attrs=None):
|
def create_one_encryption_volume_type(attrs=None):
|
||||||
"""Create a fake encryption volume type.
|
"""Create a fake encryption volume type.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -494,16 +463,12 @@ class FakeVolumeType(object):
|
|||||||
encryption_info.update(attrs)
|
encryption_info.update(attrs)
|
||||||
|
|
||||||
encryption_type = fakes.FakeResource(
|
encryption_type = fakes.FakeResource(
|
||||||
info=copy.deepcopy(encryption_info),
|
info=copy.deepcopy(encryption_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return encryption_type
|
return encryption_type
|
||||||
|
|
||||||
|
|
||||||
class FakeSnapshot(object):
|
def create_one_snapshot(attrs=None):
|
||||||
"""Fake one or more snapshot."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_snapshot(attrs=None):
|
|
||||||
"""Create a fake snapshot.
|
"""Create a fake snapshot.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -533,11 +498,12 @@ class FakeSnapshot(object):
|
|||||||
snapshot = fakes.FakeResource(
|
snapshot = fakes.FakeResource(
|
||||||
info=copy.deepcopy(snapshot_info),
|
info=copy.deepcopy(snapshot_info),
|
||||||
methods=copy.deepcopy(snapshot_method),
|
methods=copy.deepcopy(snapshot_method),
|
||||||
loaded=True)
|
loaded=True,
|
||||||
|
)
|
||||||
return snapshot
|
return snapshot
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_snapshots(attrs=None, count=2):
|
def create_snapshots(attrs=None, count=2):
|
||||||
"""Create multiple fake snapshots.
|
"""Create multiple fake snapshots.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -549,13 +515,13 @@ class FakeSnapshot(object):
|
|||||||
"""
|
"""
|
||||||
snapshots = []
|
snapshots = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
snapshot = FakeSnapshot.create_one_snapshot(attrs)
|
snapshot = create_one_snapshot(attrs)
|
||||||
snapshots.append(snapshot)
|
snapshots.append(snapshot)
|
||||||
|
|
||||||
return snapshots
|
return snapshots
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_snapshots(snapshots=None, count=2):
|
def get_snapshots(snapshots=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked snapshots.
|
"""Get an iterable MagicMock object with a list of faked snapshots.
|
||||||
|
|
||||||
If snapshots list is provided, then initialize the Mock object with the
|
If snapshots list is provided, then initialize the Mock object with the
|
||||||
@ -570,16 +536,12 @@ class FakeSnapshot(object):
|
|||||||
snapshots
|
snapshots
|
||||||
"""
|
"""
|
||||||
if snapshots is None:
|
if snapshots is None:
|
||||||
snapshots = FakeSnapshot.create_snapshots(count)
|
snapshots = create_snapshots(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=snapshots)
|
return mock.Mock(side_effect=snapshots)
|
||||||
|
|
||||||
|
|
||||||
class FakeBackup(object):
|
def create_one_backup(attrs=None):
|
||||||
"""Fake one or more backup."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_backup(attrs=None):
|
|
||||||
"""Create a fake backup.
|
"""Create a fake backup.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -607,13 +569,11 @@ class FakeBackup(object):
|
|||||||
# Overwrite default attributes.
|
# Overwrite default attributes.
|
||||||
backup_info.update(attrs)
|
backup_info.update(attrs)
|
||||||
|
|
||||||
backup = fakes.FakeResource(
|
backup = fakes.FakeResource(info=copy.deepcopy(backup_info), loaded=True)
|
||||||
info=copy.deepcopy(backup_info),
|
|
||||||
loaded=True)
|
|
||||||
return backup
|
return backup
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_backups(attrs=None, count=2):
|
def create_backups(attrs=None, count=2):
|
||||||
"""Create multiple fake backups.
|
"""Create multiple fake backups.
|
||||||
|
|
||||||
:param Dictionary attrs:
|
:param Dictionary attrs:
|
||||||
@ -625,13 +585,13 @@ class FakeBackup(object):
|
|||||||
"""
|
"""
|
||||||
backups = []
|
backups = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
backup = FakeBackup.create_one_backup(attrs)
|
backup = create_one_backup(attrs)
|
||||||
backups.append(backup)
|
backups.append(backup)
|
||||||
|
|
||||||
return backups
|
return backups
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_backups(backups=None, count=2):
|
def get_backups(backups=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked backups.
|
"""Get an iterable MagicMock object with a list of faked backups.
|
||||||
|
|
||||||
If backups list is provided, then initialize the Mock object with the
|
If backups list is provided, then initialize the Mock object with the
|
||||||
@ -646,6 +606,6 @@ class FakeBackup(object):
|
|||||||
backups
|
backups
|
||||||
"""
|
"""
|
||||||
if backups is None:
|
if backups is None:
|
||||||
backups = FakeBackup.create_backups(count)
|
backups = create_backups(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=backups)
|
return mock.Mock(side_effect=backups)
|
||||||
|
@ -28,7 +28,7 @@ from openstackclient.volume.v1 import qos_specs
|
|||||||
class TestQos(volume_fakes.TestVolumev1):
|
class TestQos(volume_fakes.TestVolumev1):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQos, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.qos_mock = self.app.client_manager.volume.qos_specs
|
self.qos_mock = self.app.client_manager.volume.qos_specs
|
||||||
self.qos_mock.reset_mock()
|
self.qos_mock.reset_mock()
|
||||||
@ -39,11 +39,11 @@ class TestQos(volume_fakes.TestVolumev1):
|
|||||||
|
|
||||||
class TestQosAssociate(TestQos):
|
class TestQosAssociate(TestQos):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
volume_type = volume_fakes.create_one_volume_type()
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosAssociate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.qos_mock.get.return_value = self.qos_spec
|
self.qos_mock.get.return_value = self.qos_spec
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
@ -80,8 +80,8 @@ class TestQosCreate(TestQos):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosCreate, self).setUp()
|
super().setUp()
|
||||||
self.new_qos_spec = volume_fakes.FakeQos.create_one_qos()
|
self.new_qos_spec = volume_fakes.create_one_qos()
|
||||||
self.datalist = (
|
self.datalist = (
|
||||||
self.new_qos_spec.consumer,
|
self.new_qos_spec.consumer,
|
||||||
self.new_qos_spec.id,
|
self.new_qos_spec.id,
|
||||||
@ -160,13 +160,13 @@ class TestQosCreate(TestQos):
|
|||||||
|
|
||||||
class TestQosDelete(TestQos):
|
class TestQosDelete(TestQos):
|
||||||
|
|
||||||
qos_specs = volume_fakes.FakeQos.create_qoses(count=2)
|
qos_specs = volume_fakes.create_qoses(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.qos_mock.get = (
|
self.qos_mock.get = (
|
||||||
volume_fakes.FakeQos.get_qoses(self.qos_specs))
|
volume_fakes.get_qoses(self.qos_specs))
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
self.cmd = qos_specs.DeleteQos(self.app, None)
|
self.cmd = qos_specs.DeleteQos(self.app, None)
|
||||||
|
|
||||||
@ -263,11 +263,11 @@ class TestQosDelete(TestQos):
|
|||||||
|
|
||||||
class TestQosDisassociate(TestQos):
|
class TestQosDisassociate(TestQos):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
volume_type = volume_fakes.create_one_volume_type()
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosDisassociate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.qos_mock.get.return_value = self.qos_spec
|
self.qos_mock.get.return_value = self.qos_spec
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
@ -311,8 +311,8 @@ class TestQosDisassociate(TestQos):
|
|||||||
|
|
||||||
class TestQosList(TestQos):
|
class TestQosList(TestQos):
|
||||||
|
|
||||||
qos_specs = volume_fakes.FakeQos.create_qoses(count=2)
|
qos_specs = volume_fakes.create_qoses(count=2)
|
||||||
qos_association = volume_fakes.FakeQos.create_one_qos_association()
|
qos_association = volume_fakes.create_one_qos_association()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -332,7 +332,7 @@ class TestQosList(TestQos):
|
|||||||
))
|
))
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.qos_mock.list.return_value = self.qos_specs
|
self.qos_mock.list.return_value = self.qos_specs
|
||||||
self.qos_mock.get_associations.return_value = [self.qos_association]
|
self.qos_mock.get_associations.return_value = [self.qos_association]
|
||||||
@ -382,10 +382,10 @@ class TestQosList(TestQos):
|
|||||||
|
|
||||||
class TestQosSet(TestQos):
|
class TestQosSet(TestQos):
|
||||||
|
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.qos_mock.get.return_value = self.qos_spec
|
self.qos_mock.get.return_value = self.qos_spec
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
@ -414,11 +414,11 @@ class TestQosSet(TestQos):
|
|||||||
|
|
||||||
class TestQosShow(TestQos):
|
class TestQosShow(TestQos):
|
||||||
|
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
qos_association = volume_fakes.FakeQos.create_one_qos_association()
|
qos_association = volume_fakes.create_one_qos_association()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosShow, self).setUp()
|
super().setUp()
|
||||||
self.qos_mock.get.return_value = self.qos_spec
|
self.qos_mock.get.return_value = self.qos_spec
|
||||||
self.qos_mock.get_associations.return_value = [self.qos_association]
|
self.qos_mock.get_associations.return_value = [self.qos_association]
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
@ -459,10 +459,10 @@ class TestQosShow(TestQos):
|
|||||||
|
|
||||||
class TestQosUnset(TestQos):
|
class TestQosUnset(TestQos):
|
||||||
|
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosUnset, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.qos_mock.get.return_value = self.qos_spec
|
self.qos_mock.get.return_value = self.qos_spec
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
|
@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
from osc_lib import exceptions
|
from osc_lib import exceptions
|
||||||
|
|
||||||
from openstackclient.tests.unit.volume.v1 import fakes as service_fakes
|
from openstackclient.tests.unit.volume.v1 import fakes as volume_fakes
|
||||||
from openstackclient.volume.v1 import service
|
from openstackclient.volume.v1 import service
|
||||||
|
|
||||||
|
|
||||||
class TestService(service_fakes.TestVolumev1):
|
class TestService(volume_fakes.TestVolumev1):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestService, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Get a shortcut to the ServiceManager Mock
|
# Get a shortcut to the ServiceManager Mock
|
||||||
self.service_mock = self.app.client_manager.volume.services
|
self.service_mock = self.app.client_manager.volume.services
|
||||||
@ -31,10 +31,10 @@ class TestService(service_fakes.TestVolumev1):
|
|||||||
class TestServiceList(TestService):
|
class TestServiceList(TestService):
|
||||||
|
|
||||||
# The service to be listed
|
# The service to be listed
|
||||||
services = service_fakes.FakeService.create_one_service()
|
services = volume_fakes.create_one_service()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestServiceList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.service_mock.list.return_value = [self.services]
|
self.service_mock.list.return_value = [self.services]
|
||||||
|
|
||||||
@ -144,10 +144,10 @@ class TestServiceList(TestService):
|
|||||||
|
|
||||||
class TestServiceSet(TestService):
|
class TestServiceSet(TestService):
|
||||||
|
|
||||||
service = service_fakes.FakeService.create_one_service()
|
service = volume_fakes.create_one_service()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestServiceSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.service_mock.enable.return_value = self.service
|
self.service_mock.enable.return_value = self.service
|
||||||
self.service_mock.disable.return_value = self.service
|
self.service_mock.disable.return_value = self.service
|
||||||
|
@ -18,14 +18,14 @@ from unittest.mock import call
|
|||||||
from osc_lib import exceptions
|
from osc_lib import exceptions
|
||||||
from osc_lib import utils
|
from osc_lib import utils
|
||||||
|
|
||||||
from openstackclient.tests.unit.volume.v1 import fakes as transfer_fakes
|
from openstackclient.tests.unit.volume.v1 import fakes as volume_fakes
|
||||||
from openstackclient.volume.v1 import volume_transfer_request
|
from openstackclient.volume.v1 import volume_transfer_request
|
||||||
|
|
||||||
|
|
||||||
class TestTransfer(transfer_fakes.TestVolumev1):
|
class TestTransfer(volume_fakes.TestVolumev1):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransfer, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Get a shortcut to the TransferManager Mock
|
# Get a shortcut to the TransferManager Mock
|
||||||
self.transfer_mock = self.app.client_manager.volume.transfers
|
self.transfer_mock = self.app.client_manager.volume.transfers
|
||||||
@ -45,10 +45,9 @@ class TestTransferAccept(TestTransfer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferAccept, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_transfer = (
|
self.volume_transfer = volume_fakes.create_one_transfer()
|
||||||
transfer_fakes.FakeTransfer.create_one_transfer())
|
|
||||||
self.data = (
|
self.data = (
|
||||||
self.volume_transfer.id,
|
self.volume_transfer.id,
|
||||||
self.volume_transfer.name,
|
self.volume_transfer.name,
|
||||||
@ -103,7 +102,7 @@ class TestTransferAccept(TestTransfer):
|
|||||||
|
|
||||||
class TestTransferCreate(TestTransfer):
|
class TestTransferCreate(TestTransfer):
|
||||||
|
|
||||||
volume = transfer_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'auth_key',
|
'auth_key',
|
||||||
@ -114,12 +113,14 @@ class TestTransferCreate(TestTransfer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferCreate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_transfer = transfer_fakes.FakeTransfer.create_one_transfer(
|
self.volume_transfer = volume_fakes.create_one_transfer(
|
||||||
attrs={'volume_id': self.volume.id,
|
attrs={
|
||||||
|
'volume_id': self.volume.id,
|
||||||
'auth_key': 'key',
|
'auth_key': 'key',
|
||||||
'created_at': 'time'}
|
'created_at': 'time',
|
||||||
|
},
|
||||||
)
|
)
|
||||||
self.data = (
|
self.data = (
|
||||||
self.volume_transfer.auth_key,
|
self.volume_transfer.auth_key,
|
||||||
@ -173,13 +174,14 @@ class TestTransferCreate(TestTransfer):
|
|||||||
|
|
||||||
class TestTransferDelete(TestTransfer):
|
class TestTransferDelete(TestTransfer):
|
||||||
|
|
||||||
volume_transfers = transfer_fakes.FakeTransfer.create_transfers(count=2)
|
volume_transfers = volume_fakes.create_transfers(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.transfer_mock.get = (
|
self.transfer_mock.get = volume_fakes.get_transfers(
|
||||||
transfer_fakes.FakeTransfer.get_transfers(self.volume_transfers))
|
self.volume_transfers,
|
||||||
|
)
|
||||||
self.transfer_mock.delete.return_value = None
|
self.transfer_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -252,10 +254,10 @@ class TestTransferDelete(TestTransfer):
|
|||||||
class TestTransferList(TestTransfer):
|
class TestTransferList(TestTransfer):
|
||||||
|
|
||||||
# The Transfers to be listed
|
# The Transfers to be listed
|
||||||
volume_transfers = transfer_fakes.FakeTransfer.create_one_transfer()
|
volume_transfers = volume_fakes.create_one_transfer()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.transfer_mock.list.return_value = [self.volume_transfers]
|
self.transfer_mock.list.return_value = [self.volume_transfers]
|
||||||
|
|
||||||
@ -346,11 +348,10 @@ class TestTransferShow(TestTransfer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_transfer = (
|
self.volume_transfer = volume_fakes.create_one_transfer(
|
||||||
transfer_fakes.FakeTransfer.create_one_transfer(
|
attrs={'created_at': 'time'}
|
||||||
attrs={'created_at': 'time'})
|
|
||||||
)
|
)
|
||||||
self.data = (
|
self.data = (
|
||||||
self.volume_transfer.created_at,
|
self.volume_transfer.created_at,
|
||||||
|
@ -27,7 +27,7 @@ from openstackclient.volume.v1 import volume_type
|
|||||||
class TestType(volume_fakes.TestVolumev1):
|
class TestType(volume_fakes.TestVolumev1):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestType, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock = self.app.client_manager.volume.volume_types
|
self.types_mock = self.app.client_manager.volume.volume_types
|
||||||
self.types_mock.reset_mock()
|
self.types_mock.reset_mock()
|
||||||
@ -47,11 +47,11 @@ class TestTypeCreate(TestType):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeCreate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.new_volume_type = \
|
self.new_volume_type = volume_fakes.create_one_volume_type(
|
||||||
volume_fakes.FakeVolumeType.create_one_volume_type(
|
methods={'set_keys': {'myprop': 'myvalue'}},
|
||||||
methods={'set_keys': {'myprop': 'myvalue'}})
|
)
|
||||||
self.data = (
|
self.data = (
|
||||||
self.new_volume_type.description,
|
self.new_volume_type.description,
|
||||||
self.new_volume_type.id,
|
self.new_volume_type.id,
|
||||||
@ -87,12 +87,12 @@ class TestTypeCreate(TestType):
|
|||||||
'key_size': '128',
|
'key_size': '128',
|
||||||
'control_location': 'front-end',
|
'control_location': 'front-end',
|
||||||
}
|
}
|
||||||
encryption_type = \
|
encryption_type = volume_fakes.create_one_encryption_volume_type(
|
||||||
volume_fakes.FakeVolumeType.create_one_encryption_volume_type(
|
attrs=encryption_info,
|
||||||
attrs=encryption_info)
|
)
|
||||||
self.new_volume_type = \
|
self.new_volume_type = volume_fakes.create_one_volume_type(
|
||||||
volume_fakes.FakeVolumeType.create_one_volume_type(
|
attrs={'encryption': encryption_info},
|
||||||
attrs={'encryption': encryption_info})
|
)
|
||||||
self.types_mock.create.return_value = self.new_volume_type
|
self.types_mock.create.return_value = self.new_volume_type
|
||||||
self.encryption_types_mock.create.return_value = encryption_type
|
self.encryption_types_mock.create.return_value = encryption_type
|
||||||
encryption_columns = (
|
encryption_columns = (
|
||||||
@ -145,13 +145,12 @@ class TestTypeCreate(TestType):
|
|||||||
|
|
||||||
class TestTypeDelete(TestType):
|
class TestTypeDelete(TestType):
|
||||||
|
|
||||||
volume_types = volume_fakes.FakeVolumeType.create_volume_types(count=2)
|
volume_types = volume_fakes.create_volume_types(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.get = volume_fakes.FakeVolumeType.get_volume_types(
|
self.types_mock.get = volume_fakes.get_volume_types(self.volume_types)
|
||||||
self.volume_types)
|
|
||||||
self.types_mock.delete.return_value = None
|
self.types_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -221,7 +220,7 @@ class TestTypeDelete(TestType):
|
|||||||
|
|
||||||
class TestTypeList(TestType):
|
class TestTypeList(TestType):
|
||||||
|
|
||||||
volume_types = volume_fakes.FakeVolumeType.create_volume_types()
|
volume_types = volume_fakes.create_volume_types()
|
||||||
|
|
||||||
columns = [
|
columns = [
|
||||||
"ID",
|
"ID",
|
||||||
@ -252,7 +251,7 @@ class TestTypeList(TestType):
|
|||||||
))
|
))
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.list.return_value = self.volume_types
|
self.types_mock.list.return_value = self.volume_types
|
||||||
self.encryption_types_mock.create.return_value = None
|
self.encryption_types_mock.create.return_value = None
|
||||||
@ -288,9 +287,9 @@ class TestTypeList(TestType):
|
|||||||
self.assertCountEqual(self.data_long, list(data))
|
self.assertCountEqual(self.data_long, list(data))
|
||||||
|
|
||||||
def test_type_list_with_encryption(self):
|
def test_type_list_with_encryption(self):
|
||||||
encryption_type = \
|
encryption_type = volume_fakes.create_one_encryption_volume_type(
|
||||||
volume_fakes.FakeVolumeType.create_one_encryption_volume_type(
|
attrs={'volume_type_id': self.volume_types[0].id},
|
||||||
attrs={'volume_type_id': self.volume_types[0].id})
|
)
|
||||||
encryption_info = {
|
encryption_info = {
|
||||||
'provider': 'LuksEncryptor',
|
'provider': 'LuksEncryptor',
|
||||||
'cipher': None,
|
'cipher': None,
|
||||||
@ -335,11 +334,12 @@ class TestTypeList(TestType):
|
|||||||
|
|
||||||
class TestTypeSet(TestType):
|
class TestTypeSet(TestType):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
volume_type = volume_fakes.create_one_volume_type(
|
||||||
methods={'set_keys': None})
|
methods={'set_keys': None},
|
||||||
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
|
|
||||||
@ -441,9 +441,9 @@ class TestTypeShow(TestType):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
self.volume_type = volume_fakes.create_one_volume_type()
|
||||||
self.data = (
|
self.data = (
|
||||||
self.volume_type.description,
|
self.volume_type.description,
|
||||||
self.volume_type.id,
|
self.volume_type.id,
|
||||||
@ -474,16 +474,16 @@ class TestTypeShow(TestType):
|
|||||||
self.assertCountEqual(self.data, data)
|
self.assertCountEqual(self.data, data)
|
||||||
|
|
||||||
def test_type_show_with_encryption(self):
|
def test_type_show_with_encryption(self):
|
||||||
encryption_type = \
|
encryption_type = volume_fakes.create_one_encryption_volume_type()
|
||||||
volume_fakes.FakeVolumeType.create_one_encryption_volume_type()
|
|
||||||
encryption_info = {
|
encryption_info = {
|
||||||
'provider': 'LuksEncryptor',
|
'provider': 'LuksEncryptor',
|
||||||
'cipher': None,
|
'cipher': None,
|
||||||
'key_size': None,
|
'key_size': None,
|
||||||
'control_location': 'front-end',
|
'control_location': 'front-end',
|
||||||
}
|
}
|
||||||
self.volume_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
self.volume_type = volume_fakes.create_one_volume_type(
|
||||||
attrs={'encryption': encryption_info})
|
attrs={'encryption': encryption_info},
|
||||||
|
)
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
self.encryption_types_mock.get.return_value = encryption_type
|
self.encryption_types_mock.get.return_value = encryption_type
|
||||||
encryption_columns = (
|
encryption_columns = (
|
||||||
@ -521,11 +521,12 @@ class TestTypeShow(TestType):
|
|||||||
|
|
||||||
class TestTypeUnset(TestType):
|
class TestTypeUnset(TestType):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
volume_type = volume_fakes.create_one_volume_type(
|
||||||
methods={'unset_keys': None})
|
methods={'unset_keys': None},
|
||||||
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeUnset, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
|
|
||||||
@ -599,7 +600,7 @@ class TestTypeUnset(TestType):
|
|||||||
class TestColumns(TestType):
|
class TestColumns(TestType):
|
||||||
|
|
||||||
def test_encryption_info_column_with_info(self):
|
def test_encryption_info_column_with_info(self):
|
||||||
fake_volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
fake_volume_type = volume_fakes.create_one_volume_type()
|
||||||
type_id = fake_volume_type.id
|
type_id = fake_volume_type.id
|
||||||
|
|
||||||
encryption_info = {
|
encryption_info = {
|
||||||
@ -615,7 +616,7 @@ class TestColumns(TestType):
|
|||||||
self.assertEqual(encryption_info, col.machine_readable())
|
self.assertEqual(encryption_info, col.machine_readable())
|
||||||
|
|
||||||
def test_encryption_info_column_without_info(self):
|
def test_encryption_info_column_without_info(self):
|
||||||
fake_volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
fake_volume_type = volume_fakes.create_one_volume_type()
|
||||||
type_id = fake_volume_type.id
|
type_id = fake_volume_type.id
|
||||||
|
|
||||||
col = volume_type.EncryptionInfoColumn(type_id, {})
|
col = volume_type.EncryptionInfoColumn(type_id, {})
|
||||||
|
@ -31,7 +31,7 @@ from openstackclient.volume.v1 import volume
|
|||||||
class TestVolume(volume_fakes.TestVolumev1):
|
class TestVolume(volume_fakes.TestVolumev1):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolume, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Get a shortcut to the VolumeManager Mock
|
# Get a shortcut to the VolumeManager Mock
|
||||||
self.volumes_mock = self.app.client_manager.volume.volumes
|
self.volumes_mock = self.app.client_manager.volume.volumes
|
||||||
@ -50,11 +50,9 @@ class TestVolume(volume_fakes.TestVolumev1):
|
|||||||
self.images_mock.reset_mock()
|
self.images_mock.reset_mock()
|
||||||
|
|
||||||
def setup_volumes_mock(self, count):
|
def setup_volumes_mock(self, count):
|
||||||
volumes = volume_fakes.FakeVolume.create_volumes(count=count)
|
volumes = volume_fakes.create_volumes(count=count)
|
||||||
|
|
||||||
self.volumes_mock.get = volume_fakes.FakeVolume.get_volumes(
|
self.volumes_mock.get = volume_fakes.get_volumes(volumes, 0)
|
||||||
volumes,
|
|
||||||
0)
|
|
||||||
return volumes
|
return volumes
|
||||||
|
|
||||||
|
|
||||||
@ -79,8 +77,8 @@ class TestVolumeCreate(TestVolume):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeCreate, self).setUp()
|
super().setUp()
|
||||||
self.new_volume = volume_fakes.FakeVolume.create_one_volume()
|
self.new_volume = volume_fakes.create_one_volume()
|
||||||
self.datalist = (
|
self.datalist = (
|
||||||
self.new_volume.attachments,
|
self.new_volume.attachments,
|
||||||
self.new_volume.availability_zone,
|
self.new_volume.availability_zone,
|
||||||
@ -635,7 +633,7 @@ class TestVolumeCreate(TestVolume):
|
|||||||
class TestVolumeDelete(TestVolume):
|
class TestVolumeDelete(TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.delete.return_value = None
|
self.volumes_mock.delete.return_value = None
|
||||||
|
|
||||||
@ -725,7 +723,7 @@ class TestVolumeDelete(TestVolume):
|
|||||||
|
|
||||||
class TestVolumeList(TestVolume):
|
class TestVolumeList(TestVolume):
|
||||||
|
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
'Name',
|
'Name',
|
||||||
@ -744,7 +742,7 @@ class TestVolumeList(TestVolume):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.list.return_value = [self._volume]
|
self.volumes_mock.list.return_value = [self._volume]
|
||||||
|
|
||||||
@ -921,10 +919,10 @@ class TestVolumeList(TestVolume):
|
|||||||
|
|
||||||
class TestVolumeMigrate(TestVolume):
|
class TestVolumeMigrate(TestVolume):
|
||||||
|
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeMigrate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.get.return_value = self._volume
|
self.volumes_mock.get.return_value = self._volume
|
||||||
self.volumes_mock.migrate_volume.return_value = None
|
self.volumes_mock.migrate_volume.return_value = None
|
||||||
@ -983,10 +981,10 @@ class TestVolumeMigrate(TestVolume):
|
|||||||
|
|
||||||
class TestVolumeSet(TestVolume):
|
class TestVolumeSet(TestVolume):
|
||||||
|
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.get.return_value = self._volume
|
self.volumes_mock.get.return_value = self._volume
|
||||||
|
|
||||||
@ -1243,8 +1241,8 @@ class TestVolumeShow(TestVolume):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeShow, self).setUp()
|
super().setUp()
|
||||||
self._volume = volume_fakes.FakeVolume.create_one_volume()
|
self._volume = volume_fakes.create_one_volume()
|
||||||
self.datalist = (
|
self.datalist = (
|
||||||
self._volume.attachments,
|
self._volume.attachments,
|
||||||
self._volume.availability_zone,
|
self._volume.availability_zone,
|
||||||
@ -1300,10 +1298,10 @@ class TestVolumeShow(TestVolume):
|
|||||||
|
|
||||||
class TestVolumeUnset(TestVolume):
|
class TestVolumeUnset(TestVolume):
|
||||||
|
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeUnset, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.get.return_value = self._volume
|
self.volumes_mock.get.return_value = self._volume
|
||||||
|
|
||||||
@ -1346,7 +1344,7 @@ class TestVolumeUnset(TestVolume):
|
|||||||
class TestColumns(TestVolume):
|
class TestColumns(TestVolume):
|
||||||
|
|
||||||
def test_attachments_column_without_server_cache(self):
|
def test_attachments_column_without_server_cache(self):
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
server_id = _volume.attachments[0]['server_id']
|
server_id = _volume.attachments[0]['server_id']
|
||||||
device = _volume.attachments[0]['device']
|
device = _volume.attachments[0]['device']
|
||||||
|
|
||||||
@ -1356,7 +1354,7 @@ class TestColumns(TestVolume):
|
|||||||
self.assertEqual(_volume.attachments, col.machine_readable())
|
self.assertEqual(_volume.attachments, col.machine_readable())
|
||||||
|
|
||||||
def test_attachments_column_with_server_cache(self):
|
def test_attachments_column_with_server_cache(self):
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
server_id = _volume.attachments[0]['server_id']
|
server_id = _volume.attachments[0]['server_id']
|
||||||
device = _volume.attachments[0]['device']
|
device = _volume.attachments[0]['device']
|
||||||
|
@ -25,7 +25,7 @@ from openstackclient.volume.v1 import volume_backup
|
|||||||
class TestBackup(volume_fakes.TestVolumev1):
|
class TestBackup(volume_fakes.TestVolumev1):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackup, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock = self.app.client_manager.volume.backups
|
self.backups_mock = self.app.client_manager.volume.backups
|
||||||
self.backups_mock.reset_mock()
|
self.backups_mock.reset_mock()
|
||||||
@ -39,7 +39,7 @@ class TestBackup(volume_fakes.TestVolumev1):
|
|||||||
|
|
||||||
class TestBackupCreate(TestBackup):
|
class TestBackupCreate(TestBackup):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'availability_zone',
|
'availability_zone',
|
||||||
@ -55,9 +55,10 @@ class TestBackupCreate(TestBackup):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupCreate, self).setUp()
|
super().setUp()
|
||||||
self.new_backup = volume_fakes.FakeBackup.create_one_backup(
|
self.new_backup = volume_fakes.create_one_backup(
|
||||||
attrs={'volume_id': self.volume.id})
|
attrs={'volume_id': self.volume.id},
|
||||||
|
)
|
||||||
self.data = (
|
self.data = (
|
||||||
self.new_backup.availability_zone,
|
self.new_backup.availability_zone,
|
||||||
self.new_backup.container,
|
self.new_backup.container,
|
||||||
@ -129,13 +130,12 @@ class TestBackupCreate(TestBackup):
|
|||||||
|
|
||||||
class TestBackupDelete(TestBackup):
|
class TestBackupDelete(TestBackup):
|
||||||
|
|
||||||
backups = volume_fakes.FakeBackup.create_backups(count=2)
|
backups = volume_fakes.create_backups(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock.get = (
|
self.backups_mock.get = volume_fakes.get_backups(self.backups)
|
||||||
volume_fakes.FakeBackup.get_backups(self.backups))
|
|
||||||
self.backups_mock.delete.return_value = None
|
self.backups_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -205,9 +205,11 @@ class TestBackupDelete(TestBackup):
|
|||||||
|
|
||||||
class TestBackupList(TestBackup):
|
class TestBackupList(TestBackup):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
backups = volume_fakes.FakeBackup.create_backups(
|
backups = volume_fakes.create_backups(
|
||||||
attrs={'volume_id': volume.display_name}, count=3)
|
attrs={'volume_id': volume.display_name},
|
||||||
|
count=3,
|
||||||
|
)
|
||||||
|
|
||||||
columns = [
|
columns = [
|
||||||
'ID',
|
'ID',
|
||||||
@ -245,7 +247,7 @@ class TestBackupList(TestBackup):
|
|||||||
))
|
))
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.list.return_value = [self.volume]
|
self.volumes_mock.list.return_value = [self.volume]
|
||||||
self.backups_mock.list.return_value = self.backups
|
self.backups_mock.list.return_value = self.backups
|
||||||
@ -314,9 +316,10 @@ class TestBackupList(TestBackup):
|
|||||||
|
|
||||||
class TestBackupRestore(TestBackup):
|
class TestBackupRestore(TestBackup):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
backup = volume_fakes.FakeBackup.create_one_backup(
|
backup = volume_fakes.create_one_backup(
|
||||||
attrs={'volume_id': volume.id})
|
attrs={'volume_id': volume.id},
|
||||||
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -324,7 +327,7 @@ class TestBackupRestore(TestBackup):
|
|||||||
self.backups_mock.get.return_value = self.backup
|
self.backups_mock.get.return_value = self.backup
|
||||||
self.volumes_mock.get.return_value = self.volume
|
self.volumes_mock.get.return_value = self.volume
|
||||||
self.restores_mock.restore.return_value = (
|
self.restores_mock.restore.return_value = (
|
||||||
volume_fakes.FakeVolume.create_one_volume(
|
volume_fakes.create_one_volume(
|
||||||
{'id': self.volume['id']},
|
{'id': self.volume['id']},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -400,8 +403,8 @@ class TestBackupShow(TestBackup):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupShow, self).setUp()
|
super().setUp()
|
||||||
self.backup = volume_fakes.FakeBackup.create_one_backup()
|
self.backup = volume_fakes.create_one_backup()
|
||||||
self.data = (
|
self.data = (
|
||||||
self.backup.availability_zone,
|
self.backup.availability_zone,
|
||||||
self.backup.container,
|
self.backup.container,
|
||||||
|
@ -41,7 +41,6 @@ QUOTA = {
|
|||||||
|
|
||||||
|
|
||||||
class FakeVolumeClient:
|
class FakeVolumeClient:
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.auth_token = kwargs['token']
|
self.auth_token = kwargs['token']
|
||||||
self.management_url = kwargs['endpoint']
|
self.management_url = kwargs['endpoint']
|
||||||
@ -76,8 +75,9 @@ class FakeVolumeClient:
|
|||||||
self.transfers = mock.Mock()
|
self.transfers = mock.Mock()
|
||||||
self.transfers.resource_class = fakes.FakeResource(None, {})
|
self.transfers.resource_class = fakes.FakeResource(None, {})
|
||||||
self.volume_encryption_types = mock.Mock()
|
self.volume_encryption_types = mock.Mock()
|
||||||
self.volume_encryption_types.resource_class = (
|
self.volume_encryption_types.resource_class = fakes.FakeResource(
|
||||||
fakes.FakeResource(None, {}))
|
None, {}
|
||||||
|
)
|
||||||
self.volume_snapshots = mock.Mock()
|
self.volume_snapshots = mock.Mock()
|
||||||
self.volume_snapshots.resource_class = fakes.FakeResource(None, {})
|
self.volume_snapshots.resource_class = fakes.FakeResource(None, {})
|
||||||
self.volume_type_access = mock.Mock()
|
self.volume_type_access = mock.Mock()
|
||||||
@ -89,29 +89,21 @@ class FakeVolumeClient:
|
|||||||
|
|
||||||
|
|
||||||
class TestVolume(utils.TestCommand):
|
class TestVolume(utils.TestCommand):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.app.client_manager.volume = FakeVolumeClient(
|
self.app.client_manager.volume = FakeVolumeClient(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL, token=fakes.AUTH_TOKEN
|
||||||
token=fakes.AUTH_TOKEN
|
|
||||||
)
|
)
|
||||||
self.app.client_manager.identity = identity_fakes.FakeIdentityv3Client(
|
self.app.client_manager.identity = identity_fakes.FakeIdentityv3Client(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL, token=fakes.AUTH_TOKEN
|
||||||
token=fakes.AUTH_TOKEN
|
|
||||||
)
|
)
|
||||||
self.app.client_manager.image = image_fakes.FakeImagev2Client(
|
self.app.client_manager.image = image_fakes.FakeImagev2Client(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL, token=fakes.AUTH_TOKEN
|
||||||
token=fakes.AUTH_TOKEN
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class FakeTransfer(object):
|
def create_one_transfer(attrs=None):
|
||||||
"""Fake one or more Transfer."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_transfer(attrs=None):
|
|
||||||
"""Create a fake transfer.
|
"""Create a fake transfer.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -132,15 +124,12 @@ class FakeTransfer(object):
|
|||||||
|
|
||||||
transfer_info.update(attrs)
|
transfer_info.update(attrs)
|
||||||
|
|
||||||
transfer = fakes.FakeResource(
|
transfer = fakes.FakeResource(None, transfer_info, loaded=True)
|
||||||
None,
|
|
||||||
transfer_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return transfer
|
return transfer
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_transfers(attrs=None, count=2):
|
def create_transfers(attrs=None, count=2):
|
||||||
"""Create multiple fake transfers.
|
"""Create multiple fake transfers.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -152,12 +141,12 @@ class FakeTransfer(object):
|
|||||||
"""
|
"""
|
||||||
transfers = []
|
transfers = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
transfers.append(FakeTransfer.create_one_transfer(attrs))
|
transfers.append(create_one_transfer(attrs))
|
||||||
|
|
||||||
return transfers
|
return transfers
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_transfers(transfers=None, count=2):
|
def get_transfers(transfers=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked transfers.
|
"""Get an iterable MagicMock object with a list of faked transfers.
|
||||||
|
|
||||||
If transfers list is provided, then initialize the Mock object with the
|
If transfers list is provided, then initialize the Mock object with the
|
||||||
@ -172,16 +161,12 @@ class FakeTransfer(object):
|
|||||||
transfers
|
transfers
|
||||||
"""
|
"""
|
||||||
if transfers is None:
|
if transfers is None:
|
||||||
transfers = FakeTransfer.create_transfers(count)
|
transfers = create_transfers(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=transfers)
|
return mock.Mock(side_effect=transfers)
|
||||||
|
|
||||||
|
|
||||||
class FakeTypeAccess(object):
|
def create_one_type_access(attrs=None):
|
||||||
"""Fake one or more volume type access."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_type_access(attrs=None):
|
|
||||||
"""Create a fake volume type access for project.
|
"""Create a fake volume type access for project.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -201,19 +186,12 @@ class FakeTypeAccess(object):
|
|||||||
# Overwrite default attributes.
|
# Overwrite default attributes.
|
||||||
type_access_attrs.update(attrs)
|
type_access_attrs.update(attrs)
|
||||||
|
|
||||||
type_access = fakes.FakeResource(
|
type_access = fakes.FakeResource(None, type_access_attrs, loaded=True)
|
||||||
None,
|
|
||||||
type_access_attrs,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return type_access
|
return type_access
|
||||||
|
|
||||||
|
|
||||||
class FakeService(object):
|
def create_one_service(attrs=None):
|
||||||
"""Fake one or more Services."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_service(attrs=None):
|
|
||||||
"""Create a fake service.
|
"""Create a fake service.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -237,15 +215,12 @@ class FakeService(object):
|
|||||||
|
|
||||||
service_info.update(attrs)
|
service_info.update(attrs)
|
||||||
|
|
||||||
service = fakes.FakeResource(
|
service = fakes.FakeResource(None, service_info, loaded=True)
|
||||||
None,
|
|
||||||
service_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return service
|
return service
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_services(attrs=None, count=2):
|
def create_services(attrs=None, count=2):
|
||||||
"""Create multiple fake services.
|
"""Create multiple fake services.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -257,16 +232,12 @@ class FakeService(object):
|
|||||||
"""
|
"""
|
||||||
services = []
|
services = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
services.append(FakeService.create_one_service(attrs))
|
services.append(create_one_service(attrs))
|
||||||
|
|
||||||
return services
|
return services
|
||||||
|
|
||||||
|
|
||||||
class FakeCapability(object):
|
def create_one_capability(attrs=None):
|
||||||
"""Fake capability."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_capability(attrs=None):
|
|
||||||
"""Create a fake volume backend capability.
|
"""Create a fake volume backend capability.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -290,42 +261,35 @@ class FakeCapability(object):
|
|||||||
"compression": {
|
"compression": {
|
||||||
"title": "Compression",
|
"title": "Compression",
|
||||||
"description": "Enables compression.",
|
"description": "Enables compression.",
|
||||||
"type": "boolean"
|
"type": "boolean",
|
||||||
},
|
},
|
||||||
"qos": {
|
"qos": {
|
||||||
"title": "QoS",
|
"title": "QoS",
|
||||||
"description": "Enables QoS.",
|
"description": "Enables QoS.",
|
||||||
"type": "boolean"
|
"type": "boolean",
|
||||||
},
|
},
|
||||||
"replication": {
|
"replication": {
|
||||||
"title": "Replication",
|
"title": "Replication",
|
||||||
"description": "Enables replication.",
|
"description": "Enables replication.",
|
||||||
"type": "boolean"
|
"type": "boolean",
|
||||||
},
|
},
|
||||||
"thin_provisioning": {
|
"thin_provisioning": {
|
||||||
"title": "Thin Provisioning",
|
"title": "Thin Provisioning",
|
||||||
"description": "Sets thin provisioning.",
|
"description": "Sets thin provisioning.",
|
||||||
"type": "boolean"
|
"type": "boolean",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
capability_info.update(attrs or {})
|
capability_info.update(attrs or {})
|
||||||
|
|
||||||
capability = fakes.FakeResource(
|
capability = fakes.FakeResource(None, capability_info, loaded=True)
|
||||||
None,
|
|
||||||
capability_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return capability
|
return capability
|
||||||
|
|
||||||
|
|
||||||
class FakePool(object):
|
def create_one_pool(attrs=None):
|
||||||
"""Fake Pools."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_pool(attrs=None):
|
|
||||||
"""Create a fake pool.
|
"""Create a fake pool.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -348,19 +312,12 @@ class FakePool(object):
|
|||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
pool_info.update(attrs or {})
|
pool_info.update(attrs or {})
|
||||||
|
|
||||||
pool = fakes.FakeResource(
|
pool = fakes.FakeResource(None, pool_info, loaded=True)
|
||||||
None,
|
|
||||||
pool_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return pool
|
return pool
|
||||||
|
|
||||||
|
|
||||||
class FakeVolume(object):
|
def create_one_volume(attrs=None):
|
||||||
"""Fake one or more volumes."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume(attrs=None):
|
|
||||||
"""Create a fake volume.
|
"""Create a fake volume.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -377,33 +334,31 @@ class FakeVolume(object):
|
|||||||
'description': 'description' + uuid.uuid4().hex,
|
'description': 'description' + uuid.uuid4().hex,
|
||||||
'status': random.choice(['available', 'in_use']),
|
'status': random.choice(['available', 'in_use']),
|
||||||
'size': random.randint(1, 20),
|
'size': random.randint(1, 20),
|
||||||
'volume_type':
|
'volume_type': random.choice(['fake_lvmdriver-1', 'fake_lvmdriver-2']),
|
||||||
random.choice(['fake_lvmdriver-1', 'fake_lvmdriver-2']),
|
'bootable': random.randint(0, 1),
|
||||||
'bootable':
|
|
||||||
random.randint(0, 1),
|
|
||||||
'metadata': {
|
'metadata': {
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex},
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
|
},
|
||||||
'snapshot_id': random.randint(1, 5),
|
'snapshot_id': random.randint(1, 5),
|
||||||
'availability_zone': 'zone' + uuid.uuid4().hex,
|
'availability_zone': 'zone' + uuid.uuid4().hex,
|
||||||
'attachments': [{
|
'attachments': [
|
||||||
|
{
|
||||||
'device': '/dev/' + uuid.uuid4().hex,
|
'device': '/dev/' + uuid.uuid4().hex,
|
||||||
'server_id': uuid.uuid4().hex,
|
'server_id': uuid.uuid4().hex,
|
||||||
}, ],
|
},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
volume_info.update(attrs)
|
volume_info.update(attrs)
|
||||||
|
|
||||||
volume = fakes.FakeResource(
|
volume = fakes.FakeResource(None, volume_info, loaded=True)
|
||||||
None,
|
|
||||||
volume_info,
|
|
||||||
loaded=True)
|
|
||||||
return volume
|
return volume
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volumes(attrs=None, count=2):
|
def create_volumes(attrs=None, count=2):
|
||||||
"""Create multiple fake volumes.
|
"""Create multiple fake volumes.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -415,12 +370,12 @@ class FakeVolume(object):
|
|||||||
"""
|
"""
|
||||||
volumes = []
|
volumes = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
volumes.append(FakeVolume.create_one_volume(attrs))
|
volumes.append(create_one_volume(attrs))
|
||||||
|
|
||||||
return volumes
|
return volumes
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_sdk_volume(attrs=None):
|
def create_one_sdk_volume(attrs=None):
|
||||||
"""Create a fake volume.
|
"""Create a fake volume.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -437,28 +392,29 @@ class FakeVolume(object):
|
|||||||
'description': 'description' + uuid.uuid4().hex,
|
'description': 'description' + uuid.uuid4().hex,
|
||||||
'status': random.choice(['available', 'in_use']),
|
'status': random.choice(['available', 'in_use']),
|
||||||
'size': random.randint(1, 20),
|
'size': random.randint(1, 20),
|
||||||
'volume_type':
|
'volume_type': random.choice(['fake_lvmdriver-1', 'fake_lvmdriver-2']),
|
||||||
random.choice(['fake_lvmdriver-1', 'fake_lvmdriver-2']),
|
'bootable': random.choice(['true', 'false']),
|
||||||
'bootable':
|
|
||||||
random.choice(['true', 'false']),
|
|
||||||
'metadata': {
|
'metadata': {
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex},
|
'key' + uuid.uuid4().hex: 'val' + uuid.uuid4().hex,
|
||||||
|
},
|
||||||
'snapshot_id': random.randint(1, 5),
|
'snapshot_id': random.randint(1, 5),
|
||||||
'availability_zone': 'zone' + uuid.uuid4().hex,
|
'availability_zone': 'zone' + uuid.uuid4().hex,
|
||||||
'attachments': [{
|
'attachments': [
|
||||||
|
{
|
||||||
'device': '/dev/' + uuid.uuid4().hex,
|
'device': '/dev/' + uuid.uuid4().hex,
|
||||||
'server_id': uuid.uuid4().hex,
|
'server_id': uuid.uuid4().hex,
|
||||||
}, ],
|
},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
volume_info.update(attrs)
|
volume_info.update(attrs)
|
||||||
return volume.Volume(**volume_info)
|
return volume.Volume(**volume_info)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_sdk_volumes(attrs=None, count=2):
|
def create_sdk_volumes(attrs=None, count=2):
|
||||||
"""Create multiple fake volumes.
|
"""Create multiple fake volumes.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -470,12 +426,12 @@ class FakeVolume(object):
|
|||||||
"""
|
"""
|
||||||
volumes = []
|
volumes = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
volumes.append(FakeVolume.create_one_sdk_volume(attrs))
|
volumes.append(create_one_sdk_volume(attrs))
|
||||||
|
|
||||||
return volumes
|
return volumes
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volumes(volumes=None, count=2):
|
def get_volumes(volumes=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked volumes.
|
"""Get an iterable MagicMock object with a list of faked volumes.
|
||||||
|
|
||||||
If volumes list is provided, then initialize the Mock object with the
|
If volumes list is provided, then initialize the Mock object with the
|
||||||
@ -490,12 +446,12 @@ class FakeVolume(object):
|
|||||||
volumes
|
volumes
|
||||||
"""
|
"""
|
||||||
if volumes is None:
|
if volumes is None:
|
||||||
volumes = FakeVolume.create_volumes(count)
|
volumes = create_volumes(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=volumes)
|
return mock.Mock(side_effect=volumes)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volume_columns(volume=None):
|
def get_volume_columns(volume=None):
|
||||||
"""Get the volume columns from a faked volume object.
|
"""Get the volume columns from a faked volume object.
|
||||||
|
|
||||||
:param volume:
|
:param volume:
|
||||||
@ -509,8 +465,8 @@ class FakeVolume(object):
|
|||||||
return tuple(k for k in sorted(volume.keys()))
|
return tuple(k for k in sorted(volume.keys()))
|
||||||
return tuple([])
|
return tuple([])
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volume_data(volume=None):
|
def get_volume_data(volume=None):
|
||||||
"""Get the volume data from a faked volume object.
|
"""Get the volume data from a faked volume object.
|
||||||
|
|
||||||
:param volume:
|
:param volume:
|
||||||
@ -526,18 +482,13 @@ class FakeVolume(object):
|
|||||||
for x in sorted(volume.keys()):
|
for x in sorted(volume.keys()):
|
||||||
if x == 'tags':
|
if x == 'tags':
|
||||||
# The 'tags' should be format_list
|
# The 'tags' should be format_list
|
||||||
data_list.append(
|
data_list.append(format_columns.ListColumn(volume.info.get(x)))
|
||||||
format_columns.ListColumn(volume.info.get(x)))
|
|
||||||
else:
|
else:
|
||||||
data_list.append(volume.info.get(x))
|
data_list.append(volume.info.get(x))
|
||||||
return tuple(data_list)
|
return tuple(data_list)
|
||||||
|
|
||||||
|
|
||||||
class FakeAvailabilityZone(object):
|
def create_one_availability_zone(attrs=None):
|
||||||
"""Fake one or more volume availability zones (AZs)."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_availability_zone(attrs=None):
|
|
||||||
"""Create a fake AZ.
|
"""Create a fake AZ.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -557,12 +508,12 @@ class FakeAvailabilityZone(object):
|
|||||||
availability_zone.update(attrs)
|
availability_zone.update(attrs)
|
||||||
|
|
||||||
availability_zone = fakes.FakeResource(
|
availability_zone = fakes.FakeResource(
|
||||||
info=copy.deepcopy(availability_zone),
|
info=copy.deepcopy(availability_zone), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return availability_zone
|
return availability_zone
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_availability_zones(attrs=None, count=2):
|
def create_availability_zones(attrs=None, count=2):
|
||||||
"""Create multiple fake AZs.
|
"""Create multiple fake AZs.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -574,18 +525,13 @@ class FakeAvailabilityZone(object):
|
|||||||
"""
|
"""
|
||||||
availability_zones = []
|
availability_zones = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
availability_zone = \
|
availability_zone = create_one_availability_zone(attrs)
|
||||||
FakeAvailabilityZone.create_one_availability_zone(attrs)
|
|
||||||
availability_zones.append(availability_zone)
|
availability_zones.append(availability_zone)
|
||||||
|
|
||||||
return availability_zones
|
return availability_zones
|
||||||
|
|
||||||
|
|
||||||
class FakeBackup(object):
|
def create_one_backup(attrs=None):
|
||||||
"""Fake one or more backup."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_backup(attrs=None):
|
|
||||||
"""Create a fake backup.
|
"""Create a fake backup.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -612,13 +558,11 @@ class FakeBackup(object):
|
|||||||
# Overwrite default attributes.
|
# Overwrite default attributes.
|
||||||
backup_info.update(attrs)
|
backup_info.update(attrs)
|
||||||
|
|
||||||
backup = fakes.FakeResource(
|
backup = fakes.FakeResource(info=copy.deepcopy(backup_info), loaded=True)
|
||||||
info=copy.deepcopy(backup_info),
|
|
||||||
loaded=True)
|
|
||||||
return backup
|
return backup
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_backups(attrs=None, count=2):
|
def create_backups(attrs=None, count=2):
|
||||||
"""Create multiple fake backups.
|
"""Create multiple fake backups.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -630,13 +574,13 @@ class FakeBackup(object):
|
|||||||
"""
|
"""
|
||||||
backups = []
|
backups = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
backup = FakeBackup.create_one_backup(attrs)
|
backup = create_one_backup(attrs)
|
||||||
backups.append(backup)
|
backups.append(backup)
|
||||||
|
|
||||||
return backups
|
return backups
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_backups(backups=None, count=2):
|
def get_backups(backups=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked backups.
|
"""Get an iterable MagicMock object with a list of faked backups.
|
||||||
|
|
||||||
If backups list is provided, then initialize the Mock object with the
|
If backups list is provided, then initialize the Mock object with the
|
||||||
@ -651,12 +595,12 @@ class FakeBackup(object):
|
|||||||
backups
|
backups
|
||||||
"""
|
"""
|
||||||
if backups is None:
|
if backups is None:
|
||||||
backups = FakeBackup.create_backups(count)
|
backups = create_backups(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=backups)
|
return mock.Mock(side_effect=backups)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_backup_record():
|
def create_backup_record():
|
||||||
"""Gets a fake backup record for a given backup.
|
"""Gets a fake backup record for a given backup.
|
||||||
|
|
||||||
:return: An "exported" backup record.
|
:return: An "exported" backup record.
|
||||||
@ -667,8 +611,8 @@ class FakeBackup(object):
|
|||||||
'backup_url': 'eyJzdGF0dXMiOiAiYXZh',
|
'backup_url': 'eyJzdGF0dXMiOiAiYXZh',
|
||||||
}
|
}
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def import_backup_record():
|
def import_backup_record():
|
||||||
"""Creates a fake backup record import response from a backup.
|
"""Creates a fake backup record import response from a backup.
|
||||||
|
|
||||||
:return: The fake backup object that was encoded.
|
:return: The fake backup object that was encoded.
|
||||||
@ -685,11 +629,7 @@ class FakeBackup(object):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class FakeConsistencyGroup(object):
|
def create_one_consistency_group(attrs=None):
|
||||||
"""Fake one or more consistency group."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_consistency_group(attrs=None):
|
|
||||||
"""Create a fake consistency group.
|
"""Create a fake consistency group.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -714,12 +654,12 @@ class FakeConsistencyGroup(object):
|
|||||||
consistency_group_info.update(attrs)
|
consistency_group_info.update(attrs)
|
||||||
|
|
||||||
consistency_group = fakes.FakeResource(
|
consistency_group = fakes.FakeResource(
|
||||||
info=copy.deepcopy(consistency_group_info),
|
info=copy.deepcopy(consistency_group_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return consistency_group
|
return consistency_group
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_consistency_groups(attrs=None, count=2):
|
def create_consistency_groups(attrs=None, count=2):
|
||||||
"""Create multiple fake consistency groups.
|
"""Create multiple fake consistency groups.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -731,14 +671,13 @@ class FakeConsistencyGroup(object):
|
|||||||
"""
|
"""
|
||||||
consistency_groups = []
|
consistency_groups = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
consistency_group = (
|
consistency_group = create_one_consistency_group(attrs)
|
||||||
FakeConsistencyGroup.create_one_consistency_group(attrs))
|
|
||||||
consistency_groups.append(consistency_group)
|
consistency_groups.append(consistency_group)
|
||||||
|
|
||||||
return consistency_groups
|
return consistency_groups
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_consistency_groups(consistency_groups=None, count=2):
|
def get_consistency_groups(consistency_groups=None, count=2):
|
||||||
"""Note:
|
"""Note:
|
||||||
|
|
||||||
Get an iterable MagicMock object with a list of faked
|
Get an iterable MagicMock object with a list of faked
|
||||||
@ -756,17 +695,12 @@ class FakeConsistencyGroup(object):
|
|||||||
consistency_groups
|
consistency_groups
|
||||||
"""
|
"""
|
||||||
if consistency_groups is None:
|
if consistency_groups is None:
|
||||||
consistency_groups = (FakeConsistencyGroup.
|
consistency_groups = create_consistency_groups(count)
|
||||||
create_consistency_groups(count))
|
|
||||||
|
|
||||||
return mock.Mock(side_effect=consistency_groups)
|
return mock.Mock(side_effect=consistency_groups)
|
||||||
|
|
||||||
|
|
||||||
class FakeConsistencyGroupSnapshot(object):
|
def create_one_consistency_group_snapshot(attrs=None):
|
||||||
"""Fake one or more consistency group snapshot."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_consistency_group_snapshot(attrs=None):
|
|
||||||
"""Create a fake consistency group snapshot.
|
"""Create a fake consistency group snapshot.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -790,12 +724,12 @@ class FakeConsistencyGroupSnapshot(object):
|
|||||||
consistency_group_snapshot_info.update(attrs)
|
consistency_group_snapshot_info.update(attrs)
|
||||||
|
|
||||||
consistency_group_snapshot = fakes.FakeResource(
|
consistency_group_snapshot = fakes.FakeResource(
|
||||||
info=copy.deepcopy(consistency_group_snapshot_info),
|
info=copy.deepcopy(consistency_group_snapshot_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return consistency_group_snapshot
|
return consistency_group_snapshot
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_consistency_group_snapshots(attrs=None, count=2):
|
def create_consistency_group_snapshots(attrs=None, count=2):
|
||||||
"""Create multiple fake consistency group snapshots.
|
"""Create multiple fake consistency group snapshots.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -808,16 +742,15 @@ class FakeConsistencyGroupSnapshot(object):
|
|||||||
"""
|
"""
|
||||||
consistency_group_snapshots = []
|
consistency_group_snapshots = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
consistency_group_snapshot = (
|
consistency_group_snapshot = create_one_consistency_group_snapshot(
|
||||||
FakeConsistencyGroupSnapshot.
|
attrs,
|
||||||
create_one_consistency_group_snapshot(attrs)
|
|
||||||
)
|
)
|
||||||
consistency_group_snapshots.append(consistency_group_snapshot)
|
consistency_group_snapshots.append(consistency_group_snapshot)
|
||||||
|
|
||||||
return consistency_group_snapshots
|
return consistency_group_snapshots
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_consistency_group_snapshots(snapshots=None, count=2):
|
def get_consistency_group_snapshots(snapshots=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked cgsnapshots.
|
"""Get an iterable MagicMock object with a list of faked cgsnapshots.
|
||||||
|
|
||||||
If consistenct group snapshots list is provided, then initialize
|
If consistenct group snapshots list is provided, then initialize
|
||||||
@ -832,17 +765,12 @@ class FakeConsistencyGroupSnapshot(object):
|
|||||||
consistency groups
|
consistency groups
|
||||||
"""
|
"""
|
||||||
if snapshots is None:
|
if snapshots is None:
|
||||||
snapshots = (FakeConsistencyGroupSnapshot.
|
snapshots = create_consistency_group_snapshots(count)
|
||||||
create_consistency_group_snapshots(count))
|
|
||||||
|
|
||||||
return mock.Mock(side_effect=snapshots)
|
return mock.Mock(side_effect=snapshots)
|
||||||
|
|
||||||
|
|
||||||
class FakeExtension(object):
|
def create_one_extension(attrs=None):
|
||||||
"""Fake one or more extension."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_extension(attrs=None):
|
|
||||||
"""Create a fake extension.
|
"""Create a fake extension.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -855,30 +783,30 @@ class FakeExtension(object):
|
|||||||
# Set default attributes.
|
# Set default attributes.
|
||||||
extension_info = {
|
extension_info = {
|
||||||
'name': 'name-' + uuid.uuid4().hex,
|
'name': 'name-' + uuid.uuid4().hex,
|
||||||
'namespace': ('http://docs.openstack.org/'
|
'namespace': (
|
||||||
'block-service/ext/scheduler-hints/api/v2'),
|
'http://docs.openstack.org/'
|
||||||
|
'block-service/ext/scheduler-hints/api/v2'
|
||||||
|
),
|
||||||
'description': 'description-' + uuid.uuid4().hex,
|
'description': 'description-' + uuid.uuid4().hex,
|
||||||
'updated': '2013-04-18T00:00:00+00:00',
|
'updated': '2013-04-18T00:00:00+00:00',
|
||||||
'alias': 'OS-SCH-HNT',
|
'alias': 'OS-SCH-HNT',
|
||||||
'links': ('[{"href":'
|
'links': (
|
||||||
|
'[{"href":'
|
||||||
'"https://github.com/openstack/block-api", "type":'
|
'"https://github.com/openstack/block-api", "type":'
|
||||||
' "text/html", "rel": "describedby"}]'),
|
' "text/html", "rel": "describedby"}]'
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
# Overwrite default attributes.
|
# Overwrite default attributes.
|
||||||
extension_info.update(attrs)
|
extension_info.update(attrs)
|
||||||
|
|
||||||
extension = fakes.FakeResource(
|
extension = fakes.FakeResource(
|
||||||
info=copy.deepcopy(extension_info),
|
info=copy.deepcopy(extension_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return extension
|
return extension
|
||||||
|
|
||||||
|
|
||||||
class FakeQos(object):
|
def create_one_qos(attrs=None):
|
||||||
"""Fake one or more Qos specification."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_qos(attrs=None):
|
|
||||||
"""Create a fake Qos specification.
|
"""Create a fake Qos specification.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -899,13 +827,11 @@ class FakeQos(object):
|
|||||||
# Overwrite default attributes.
|
# Overwrite default attributes.
|
||||||
qos_info.update(attrs)
|
qos_info.update(attrs)
|
||||||
|
|
||||||
qos = fakes.FakeResource(
|
qos = fakes.FakeResource(info=copy.deepcopy(qos_info), loaded=True)
|
||||||
info=copy.deepcopy(qos_info),
|
|
||||||
loaded=True)
|
|
||||||
return qos
|
return qos
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_qos_association(attrs=None):
|
def create_one_qos_association(attrs=None):
|
||||||
"""Create a fake Qos specification association.
|
"""Create a fake Qos specification association.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -926,12 +852,12 @@ class FakeQos(object):
|
|||||||
qos_association_info.update(attrs)
|
qos_association_info.update(attrs)
|
||||||
|
|
||||||
qos_association = fakes.FakeResource(
|
qos_association = fakes.FakeResource(
|
||||||
info=copy.deepcopy(qos_association_info),
|
info=copy.deepcopy(qos_association_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return qos_association
|
return qos_association
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_qoses(attrs=None, count=2):
|
def create_qoses(attrs=None, count=2):
|
||||||
"""Create multiple fake Qos specifications.
|
"""Create multiple fake Qos specifications.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -943,13 +869,13 @@ class FakeQos(object):
|
|||||||
"""
|
"""
|
||||||
qoses = []
|
qoses = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
qos = FakeQos.create_one_qos(attrs)
|
qos = create_one_qos(attrs)
|
||||||
qoses.append(qos)
|
qoses.append(qos)
|
||||||
|
|
||||||
return qoses
|
return qoses
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_qoses(qoses=None, count=2):
|
def get_qoses(qoses=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked qoses.
|
"""Get an iterable MagicMock object with a list of faked qoses.
|
||||||
|
|
||||||
If qoses list is provided, then initialize the Mock object with the
|
If qoses list is provided, then initialize the Mock object with the
|
||||||
@ -964,16 +890,12 @@ class FakeQos(object):
|
|||||||
qoses
|
qoses
|
||||||
"""
|
"""
|
||||||
if qoses is None:
|
if qoses is None:
|
||||||
qoses = FakeQos.create_qoses(count)
|
qoses = create_qoses(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=qoses)
|
return mock.Mock(side_effect=qoses)
|
||||||
|
|
||||||
|
|
||||||
class FakeSnapshot(object):
|
def create_one_snapshot(attrs=None):
|
||||||
"""Fake one or more snapshot."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_snapshot(attrs=None):
|
|
||||||
"""Create a fake snapshot.
|
"""Create a fake snapshot.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -999,12 +921,12 @@ class FakeSnapshot(object):
|
|||||||
snapshot_info.update(attrs)
|
snapshot_info.update(attrs)
|
||||||
|
|
||||||
snapshot = fakes.FakeResource(
|
snapshot = fakes.FakeResource(
|
||||||
info=copy.deepcopy(snapshot_info),
|
info=copy.deepcopy(snapshot_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return snapshot
|
return snapshot
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_snapshots(attrs=None, count=2):
|
def create_snapshots(attrs=None, count=2):
|
||||||
"""Create multiple fake snapshots.
|
"""Create multiple fake snapshots.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -1016,13 +938,13 @@ class FakeSnapshot(object):
|
|||||||
"""
|
"""
|
||||||
snapshots = []
|
snapshots = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
snapshot = FakeSnapshot.create_one_snapshot(attrs)
|
snapshot = create_one_snapshot(attrs)
|
||||||
snapshots.append(snapshot)
|
snapshots.append(snapshot)
|
||||||
|
|
||||||
return snapshots
|
return snapshots
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_snapshots(snapshots=None, count=2):
|
def get_snapshots(snapshots=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked snapshots.
|
"""Get an iterable MagicMock object with a list of faked snapshots.
|
||||||
|
|
||||||
If snapshots list is provided, then initialize the Mock object with the
|
If snapshots list is provided, then initialize the Mock object with the
|
||||||
@ -1037,16 +959,12 @@ class FakeSnapshot(object):
|
|||||||
snapshots
|
snapshots
|
||||||
"""
|
"""
|
||||||
if snapshots is None:
|
if snapshots is None:
|
||||||
snapshots = FakeSnapshot.create_snapshots(count)
|
snapshots = create_snapshots(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=snapshots)
|
return mock.Mock(side_effect=snapshots)
|
||||||
|
|
||||||
|
|
||||||
class FakeVolumeType(object):
|
def create_one_volume_type(attrs=None, methods=None):
|
||||||
"""Fake one or more volume type."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume_type(attrs=None, methods=None):
|
|
||||||
"""Create a fake volume type.
|
"""Create a fake volume type.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -1072,13 +990,12 @@ class FakeVolumeType(object):
|
|||||||
volume_type_info.update(attrs)
|
volume_type_info.update(attrs)
|
||||||
|
|
||||||
volume_type = fakes.FakeResource(
|
volume_type = fakes.FakeResource(
|
||||||
info=copy.deepcopy(volume_type_info),
|
info=copy.deepcopy(volume_type_info), methods=methods, loaded=True
|
||||||
methods=methods,
|
)
|
||||||
loaded=True)
|
|
||||||
return volume_type
|
return volume_type
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volume_types(attrs=None, count=2):
|
def create_volume_types(attrs=None, count=2):
|
||||||
"""Create multiple fake volume_types.
|
"""Create multiple fake volume_types.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -1090,13 +1007,13 @@ class FakeVolumeType(object):
|
|||||||
"""
|
"""
|
||||||
volume_types = []
|
volume_types = []
|
||||||
for i in range(0, count):
|
for i in range(0, count):
|
||||||
volume_type = FakeVolumeType.create_one_volume_type(attrs)
|
volume_type = create_one_volume_type(attrs)
|
||||||
volume_types.append(volume_type)
|
volume_types.append(volume_type)
|
||||||
|
|
||||||
return volume_types
|
return volume_types
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volume_types(volume_types=None, count=2):
|
def get_volume_types(volume_types=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked volume types.
|
"""Get an iterable MagicMock object with a list of faked volume types.
|
||||||
|
|
||||||
If volume_types list is provided, then initialize the Mock object with
|
If volume_types list is provided, then initialize the Mock object with
|
||||||
@ -1111,12 +1028,12 @@ class FakeVolumeType(object):
|
|||||||
volume types
|
volume types
|
||||||
"""
|
"""
|
||||||
if volume_types is None:
|
if volume_types is None:
|
||||||
volume_types = FakeVolumeType.create_volume_types(count)
|
volume_types = create_volume_types(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=volume_types)
|
return mock.Mock(side_effect=volume_types)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_encryption_volume_type(attrs=None):
|
def create_one_encryption_volume_type(attrs=None):
|
||||||
"""Create a fake encryption volume type.
|
"""Create a fake encryption volume type.
|
||||||
|
|
||||||
:param dict attrs:
|
:param dict attrs:
|
||||||
@ -1139,16 +1056,12 @@ class FakeVolumeType(object):
|
|||||||
encryption_info.update(attrs)
|
encryption_info.update(attrs)
|
||||||
|
|
||||||
encryption_type = fakes.FakeResource(
|
encryption_type = fakes.FakeResource(
|
||||||
info=copy.deepcopy(encryption_info),
|
info=copy.deepcopy(encryption_info), loaded=True
|
||||||
loaded=True)
|
)
|
||||||
return encryption_type
|
return encryption_type
|
||||||
|
|
||||||
|
|
||||||
class FakeQuota(object):
|
def create_one_vol_quota(attrs=None):
|
||||||
"""Fake quota"""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_vol_quota(attrs=None):
|
|
||||||
"""Create one quota"""
|
"""Create one quota"""
|
||||||
attrs = attrs or {}
|
attrs = attrs or {}
|
||||||
|
|
||||||
@ -1159,19 +1072,18 @@ class FakeQuota(object):
|
|||||||
'gigabytes': 10,
|
'gigabytes': 10,
|
||||||
'per_volume_gigabytes': 10,
|
'per_volume_gigabytes': 10,
|
||||||
'snapshots': 0,
|
'snapshots': 0,
|
||||||
'volumes': 10}
|
'volumes': 10,
|
||||||
|
}
|
||||||
|
|
||||||
quota_attrs.update(attrs)
|
quota_attrs.update(attrs)
|
||||||
|
|
||||||
quota = fakes.FakeResource(
|
quota = fakes.FakeResource(info=copy.deepcopy(quota_attrs), loaded=True)
|
||||||
info=copy.deepcopy(quota_attrs),
|
|
||||||
loaded=True)
|
|
||||||
quota.project_id = quota_attrs['id']
|
quota.project_id = quota_attrs['id']
|
||||||
|
|
||||||
return quota
|
return quota
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_default_vol_quota(attrs=None):
|
def create_one_default_vol_quota(attrs=None):
|
||||||
"""Create one quota"""
|
"""Create one quota"""
|
||||||
attrs = attrs or {}
|
attrs = attrs or {}
|
||||||
|
|
||||||
@ -1182,19 +1094,18 @@ class FakeQuota(object):
|
|||||||
'gigabytes': 100,
|
'gigabytes': 100,
|
||||||
'per_volume_gigabytes': 100,
|
'per_volume_gigabytes': 100,
|
||||||
'snapshots': 100,
|
'snapshots': 100,
|
||||||
'volumes': 100}
|
'volumes': 100,
|
||||||
|
}
|
||||||
|
|
||||||
quota_attrs.update(attrs)
|
quota_attrs.update(attrs)
|
||||||
|
|
||||||
quota = fakes.FakeResource(
|
quota = fakes.FakeResource(info=copy.deepcopy(quota_attrs), loaded=True)
|
||||||
info=copy.deepcopy(quota_attrs),
|
|
||||||
loaded=True)
|
|
||||||
quota.project_id = quota_attrs['id']
|
quota.project_id = quota_attrs['id']
|
||||||
|
|
||||||
return quota
|
return quota
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_detailed_quota(attrs=None):
|
def create_one_detailed_quota(attrs=None):
|
||||||
"""Create one quota"""
|
"""Create one quota"""
|
||||||
attrs = attrs or {}
|
attrs = attrs or {}
|
||||||
|
|
||||||
@ -1216,9 +1127,7 @@ class FakeQuota(object):
|
|||||||
}
|
}
|
||||||
quota_attrs.update(attrs)
|
quota_attrs.update(attrs)
|
||||||
|
|
||||||
quota = fakes.FakeResource(
|
quota = fakes.FakeResource(info=copy.deepcopy(quota_attrs), loaded=True)
|
||||||
info=copy.deepcopy(quota_attrs),
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
return quota
|
return quota
|
||||||
|
|
||||||
@ -1237,12 +1146,13 @@ class FakeLimits(object):
|
|||||||
'maxTotalVolumes': 10,
|
'maxTotalVolumes': 10,
|
||||||
'totalVolumesUsed': 4,
|
'totalVolumesUsed': 4,
|
||||||
'totalBackupsUsed': 0,
|
'totalBackupsUsed': 0,
|
||||||
'totalGigabytesUsed': 35
|
'totalGigabytesUsed': 35,
|
||||||
}
|
}
|
||||||
absolute_attrs = absolute_attrs or {}
|
absolute_attrs = absolute_attrs or {}
|
||||||
self.absolute_limits_attrs.update(absolute_attrs)
|
self.absolute_limits_attrs.update(absolute_attrs)
|
||||||
|
|
||||||
self.rate_limits_attrs = [{
|
self.rate_limits_attrs = [
|
||||||
|
{
|
||||||
"uri": "*",
|
"uri": "*",
|
||||||
"limit": [
|
"limit": [
|
||||||
{
|
{
|
||||||
@ -1250,24 +1160,25 @@ class FakeLimits(object):
|
|||||||
"verb": "POST",
|
"verb": "POST",
|
||||||
"remaining": 2,
|
"remaining": 2,
|
||||||
"unit": "MINUTE",
|
"unit": "MINUTE",
|
||||||
"next-available": "2011-12-15T22:42:45Z"
|
"next-available": "2011-12-15T22:42:45Z",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"value": 10,
|
"value": 10,
|
||||||
"verb": "PUT",
|
"verb": "PUT",
|
||||||
"remaining": 2,
|
"remaining": 2,
|
||||||
"unit": "MINUTE",
|
"unit": "MINUTE",
|
||||||
"next-available": "2011-12-15T22:42:45Z"
|
"next-available": "2011-12-15T22:42:45Z",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"value": 100,
|
"value": 100,
|
||||||
"verb": "DELETE",
|
"verb": "DELETE",
|
||||||
"remaining": 100,
|
"remaining": 100,
|
||||||
"unit": "MINUTE",
|
"unit": "MINUTE",
|
||||||
"next-available": "2011-12-15T22:42:45Z"
|
"next-available": "2011-12-15T22:42:45Z",
|
||||||
|
},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}]
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def absolute(self):
|
def absolute(self):
|
||||||
@ -1285,18 +1196,30 @@ class FakeLimits(object):
|
|||||||
for group in self.rate_limits_attrs:
|
for group in self.rate_limits_attrs:
|
||||||
uri = group['uri']
|
uri = group['uri']
|
||||||
for rate in group['limit']:
|
for rate in group['limit']:
|
||||||
yield FakeRateLimit(rate['verb'], uri, rate['value'],
|
yield FakeRateLimit(
|
||||||
rate['remaining'], rate['unit'],
|
rate['verb'],
|
||||||
rate['next-available'])
|
uri,
|
||||||
|
rate['value'],
|
||||||
|
rate['remaining'],
|
||||||
|
rate['unit'],
|
||||||
|
rate['next-available'],
|
||||||
|
)
|
||||||
|
|
||||||
def rate_limits(self):
|
def rate_limits(self):
|
||||||
reference_data = []
|
reference_data = []
|
||||||
for group in self.rate_limits_attrs:
|
for group in self.rate_limits_attrs:
|
||||||
uri = group['uri']
|
uri = group['uri']
|
||||||
for rate in group['limit']:
|
for rate in group['limit']:
|
||||||
reference_data.append((rate['verb'], uri, rate['value'],
|
reference_data.append(
|
||||||
rate['remaining'], rate['unit'],
|
(
|
||||||
rate['next-available']))
|
rate['verb'],
|
||||||
|
uri,
|
||||||
|
rate['value'],
|
||||||
|
rate['remaining'],
|
||||||
|
rate['unit'],
|
||||||
|
rate['next-available'],
|
||||||
|
)
|
||||||
|
)
|
||||||
return reference_data
|
return reference_data
|
||||||
|
|
||||||
|
|
||||||
@ -1311,8 +1234,7 @@ class FakeAbsoluteLimit(object):
|
|||||||
class FakeRateLimit(object):
|
class FakeRateLimit(object):
|
||||||
"""Data model that represents a flattened view of a single rate limit."""
|
"""Data model that represents a flattened view of a single rate limit."""
|
||||||
|
|
||||||
def __init__(self, verb, uri, value, remain,
|
def __init__(self, verb, uri, value, remain, unit, next_available):
|
||||||
unit, next_available):
|
|
||||||
self.verb = verb
|
self.verb = verb
|
||||||
self.uri = uri
|
self.uri = uri
|
||||||
self.value = value
|
self.value = value
|
||||||
|
@ -19,7 +19,7 @@ from openstackclient.volume.v2 import backup_record
|
|||||||
class TestBackupRecord(volume_fakes.TestVolume):
|
class TestBackupRecord(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupRecord, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock = self.app.client_manager.volume.backups
|
self.backups_mock = self.app.client_manager.volume.backups
|
||||||
self.backups_mock.reset_mock()
|
self.backups_mock.reset_mock()
|
||||||
@ -27,12 +27,13 @@ class TestBackupRecord(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestBackupRecordExport(TestBackupRecord):
|
class TestBackupRecordExport(TestBackupRecord):
|
||||||
|
|
||||||
new_backup = volume_fakes.FakeBackup.create_one_backup(
|
new_backup = volume_fakes.create_one_backup(
|
||||||
attrs={'volume_id': 'a54708a2-0388-4476-a909-09579f885c25'})
|
attrs={'volume_id': 'a54708a2-0388-4476-a909-09579f885c25'},
|
||||||
new_record = volume_fakes.FakeBackup.create_backup_record()
|
)
|
||||||
|
new_record = volume_fakes.create_backup_record()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupRecordExport, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock.export_record.return_value = self.new_record
|
self.backups_mock.export_record.return_value = self.new_record
|
||||||
self.backups_mock.get.return_value = self.new_backup
|
self.backups_mock.get.return_value = self.new_backup
|
||||||
@ -81,12 +82,13 @@ class TestBackupRecordExport(TestBackupRecord):
|
|||||||
|
|
||||||
class TestBackupRecordImport(TestBackupRecord):
|
class TestBackupRecordImport(TestBackupRecord):
|
||||||
|
|
||||||
new_backup = volume_fakes.FakeBackup.create_one_backup(
|
new_backup = volume_fakes.create_one_backup(
|
||||||
attrs={'volume_id': 'a54708a2-0388-4476-a909-09579f885c25'})
|
attrs={'volume_id': 'a54708a2-0388-4476-a909-09579f885c25'},
|
||||||
new_import = volume_fakes.FakeBackup.import_backup_record()
|
)
|
||||||
|
new_import = volume_fakes.import_backup_record()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupRecordImport, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock.import_record.return_value = self.new_import
|
self.backups_mock.import_record.return_value = self.new_import
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ from openstackclient.volume.v2 import consistency_group
|
|||||||
class TestConsistencyGroup(volume_fakes.TestVolume):
|
class TestConsistencyGroup(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroup, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Get a shortcut to the TransferManager Mock
|
# Get a shortcut to the TransferManager Mock
|
||||||
self.consistencygroups_mock = (
|
self.consistencygroups_mock = (
|
||||||
@ -47,11 +47,10 @@ class TestConsistencyGroup(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestConsistencyGroupAddVolume(TestConsistencyGroup):
|
class TestConsistencyGroupAddVolume(TestConsistencyGroup):
|
||||||
|
|
||||||
_consistency_group = (
|
_consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupAddVolume, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.consistencygroups_mock.get.return_value = (
|
self.consistencygroups_mock.get.return_value = (
|
||||||
self._consistency_group)
|
self._consistency_group)
|
||||||
@ -60,7 +59,7 @@ class TestConsistencyGroupAddVolume(TestConsistencyGroup):
|
|||||||
consistency_group.AddVolumeToConsistencyGroup(self.app, None)
|
consistency_group.AddVolumeToConsistencyGroup(self.app, None)
|
||||||
|
|
||||||
def test_add_one_volume_to_consistency_group(self):
|
def test_add_one_volume_to_consistency_group(self):
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.get.return_value = volume
|
self.volumes_mock.get.return_value = volume
|
||||||
arglist = [
|
arglist = [
|
||||||
self._consistency_group.id,
|
self._consistency_group.id,
|
||||||
@ -85,8 +84,8 @@ class TestConsistencyGroupAddVolume(TestConsistencyGroup):
|
|||||||
self.assertIsNone(result)
|
self.assertIsNone(result)
|
||||||
|
|
||||||
def test_add_multiple_volumes_to_consistency_group(self):
|
def test_add_multiple_volumes_to_consistency_group(self):
|
||||||
volumes = volume_fakes.FakeVolume.create_volumes(count=2)
|
volumes = volume_fakes.create_volumes(count=2)
|
||||||
self.volumes_mock.get = volume_fakes.FakeVolume.get_volumes(volumes)
|
self.volumes_mock.get = volume_fakes.get_volumes(volumes)
|
||||||
arglist = [
|
arglist = [
|
||||||
self._consistency_group.id,
|
self._consistency_group.id,
|
||||||
volumes[0].id,
|
volumes[0].id,
|
||||||
@ -112,8 +111,9 @@ class TestConsistencyGroupAddVolume(TestConsistencyGroup):
|
|||||||
|
|
||||||
@mock.patch.object(consistency_group.LOG, 'error')
|
@mock.patch.object(consistency_group.LOG, 'error')
|
||||||
def test_add_multiple_volumes_to_consistency_group_with_exception(
|
def test_add_multiple_volumes_to_consistency_group_with_exception(
|
||||||
self, mock_error):
|
self, mock_error,
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
):
|
||||||
|
volume = volume_fakes.create_one_volume()
|
||||||
arglist = [
|
arglist = [
|
||||||
self._consistency_group.id,
|
self._consistency_group.id,
|
||||||
volume.id,
|
volume.id,
|
||||||
@ -148,13 +148,10 @@ class TestConsistencyGroupAddVolume(TestConsistencyGroup):
|
|||||||
|
|
||||||
class TestConsistencyGroupCreate(TestConsistencyGroup):
|
class TestConsistencyGroupCreate(TestConsistencyGroup):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
volume_type = volume_fakes.create_one_volume_type()
|
||||||
new_consistency_group = (
|
new_consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
|
|
||||||
consistency_group_snapshot = (
|
consistency_group_snapshot = (
|
||||||
volume_fakes.
|
volume_fakes.create_one_consistency_group_snapshot()
|
||||||
FakeConsistencyGroupSnapshot.
|
|
||||||
create_one_consistency_group_snapshot()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
@ -177,7 +174,7 @@ class TestConsistencyGroupCreate(TestConsistencyGroup):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupCreate, self).setUp()
|
super().setUp()
|
||||||
self.consistencygroups_mock.create.return_value = (
|
self.consistencygroups_mock.create.return_value = (
|
||||||
self.new_consistency_group)
|
self.new_consistency_group)
|
||||||
self.consistencygroups_mock.create_from_src.return_value = (
|
self.consistencygroups_mock.create_from_src.return_value = (
|
||||||
@ -313,13 +310,14 @@ class TestConsistencyGroupCreate(TestConsistencyGroup):
|
|||||||
class TestConsistencyGroupDelete(TestConsistencyGroup):
|
class TestConsistencyGroupDelete(TestConsistencyGroup):
|
||||||
|
|
||||||
consistency_groups =\
|
consistency_groups =\
|
||||||
volume_fakes.FakeConsistencyGroup.create_consistency_groups(count=2)
|
volume_fakes.create_consistency_groups(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.consistencygroups_mock.get = volume_fakes.FakeConsistencyGroup.\
|
self.consistencygroups_mock.get = volume_fakes.get_consistency_groups(
|
||||||
get_consistency_groups(self.consistency_groups)
|
self.consistency_groups,
|
||||||
|
)
|
||||||
self.consistencygroups_mock.delete.return_value = None
|
self.consistencygroups_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -409,8 +407,7 @@ class TestConsistencyGroupDelete(TestConsistencyGroup):
|
|||||||
|
|
||||||
class TestConsistencyGroupList(TestConsistencyGroup):
|
class TestConsistencyGroupList(TestConsistencyGroup):
|
||||||
|
|
||||||
consistency_groups = (
|
consistency_groups = volume_fakes.create_consistency_groups(count=2)
|
||||||
volume_fakes.FakeConsistencyGroup.create_consistency_groups(count=2))
|
|
||||||
|
|
||||||
columns = [
|
columns = [
|
||||||
'ID',
|
'ID',
|
||||||
@ -444,7 +441,7 @@ class TestConsistencyGroupList(TestConsistencyGroup):
|
|||||||
))
|
))
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.consistencygroups_mock.list.return_value = self.consistency_groups
|
self.consistencygroups_mock.list.return_value = self.consistency_groups
|
||||||
# Get the command to test
|
# Get the command to test
|
||||||
@ -502,11 +499,10 @@ class TestConsistencyGroupList(TestConsistencyGroup):
|
|||||||
|
|
||||||
class TestConsistencyGroupRemoveVolume(TestConsistencyGroup):
|
class TestConsistencyGroupRemoveVolume(TestConsistencyGroup):
|
||||||
|
|
||||||
_consistency_group = (
|
_consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupRemoveVolume, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.consistencygroups_mock.get.return_value = (
|
self.consistencygroups_mock.get.return_value = (
|
||||||
self._consistency_group)
|
self._consistency_group)
|
||||||
@ -515,7 +511,7 @@ class TestConsistencyGroupRemoveVolume(TestConsistencyGroup):
|
|||||||
consistency_group.RemoveVolumeFromConsistencyGroup(self.app, None)
|
consistency_group.RemoveVolumeFromConsistencyGroup(self.app, None)
|
||||||
|
|
||||||
def test_remove_one_volume_from_consistency_group(self):
|
def test_remove_one_volume_from_consistency_group(self):
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.get.return_value = volume
|
self.volumes_mock.get.return_value = volume
|
||||||
arglist = [
|
arglist = [
|
||||||
self._consistency_group.id,
|
self._consistency_group.id,
|
||||||
@ -540,8 +536,8 @@ class TestConsistencyGroupRemoveVolume(TestConsistencyGroup):
|
|||||||
self.assertIsNone(result)
|
self.assertIsNone(result)
|
||||||
|
|
||||||
def test_remove_multi_volumes_from_consistency_group(self):
|
def test_remove_multi_volumes_from_consistency_group(self):
|
||||||
volumes = volume_fakes.FakeVolume.create_volumes(count=2)
|
volumes = volume_fakes.create_volumes(count=2)
|
||||||
self.volumes_mock.get = volume_fakes.FakeVolume.get_volumes(volumes)
|
self.volumes_mock.get = volume_fakes.get_volumes(volumes)
|
||||||
arglist = [
|
arglist = [
|
||||||
self._consistency_group.id,
|
self._consistency_group.id,
|
||||||
volumes[0].id,
|
volumes[0].id,
|
||||||
@ -567,8 +563,10 @@ class TestConsistencyGroupRemoveVolume(TestConsistencyGroup):
|
|||||||
|
|
||||||
@mock.patch.object(consistency_group.LOG, 'error')
|
@mock.patch.object(consistency_group.LOG, 'error')
|
||||||
def test_remove_multiple_volumes_from_consistency_group_with_exception(
|
def test_remove_multiple_volumes_from_consistency_group_with_exception(
|
||||||
self, mock_error):
|
self,
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
mock_error,
|
||||||
|
):
|
||||||
|
volume = volume_fakes.create_one_volume()
|
||||||
arglist = [
|
arglist = [
|
||||||
self._consistency_group.id,
|
self._consistency_group.id,
|
||||||
volume.id,
|
volume.id,
|
||||||
@ -603,11 +601,10 @@ class TestConsistencyGroupRemoveVolume(TestConsistencyGroup):
|
|||||||
|
|
||||||
class TestConsistencyGroupSet(TestConsistencyGroup):
|
class TestConsistencyGroupSet(TestConsistencyGroup):
|
||||||
|
|
||||||
consistency_group = (
|
consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.consistencygroups_mock.get.return_value = (
|
self.consistencygroups_mock.get.return_value = (
|
||||||
self.consistency_group)
|
self.consistency_group)
|
||||||
@ -677,10 +674,9 @@ class TestConsistencyGroupShow(TestConsistencyGroup):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.consistency_group = (
|
self.consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
|
|
||||||
self.data = (
|
self.data = (
|
||||||
self.consistency_group.availability_zone,
|
self.consistency_group.availability_zone,
|
||||||
self.consistency_group.created_at,
|
self.consistency_group.created_at,
|
||||||
|
@ -35,12 +35,9 @@ class TestConsistencyGroupSnapshot(volume_fakes.TestVolume):
|
|||||||
class TestConsistencyGroupSnapshotCreate(TestConsistencyGroupSnapshot):
|
class TestConsistencyGroupSnapshotCreate(TestConsistencyGroupSnapshot):
|
||||||
|
|
||||||
_consistency_group_snapshot = (
|
_consistency_group_snapshot = (
|
||||||
volume_fakes.
|
volume_fakes.create_one_consistency_group_snapshot()
|
||||||
FakeConsistencyGroupSnapshot.
|
|
||||||
create_one_consistency_group_snapshot()
|
|
||||||
)
|
)
|
||||||
consistency_group = (
|
consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'consistencygroup_id',
|
'consistencygroup_id',
|
||||||
@ -124,16 +121,16 @@ class TestConsistencyGroupSnapshotCreate(TestConsistencyGroupSnapshot):
|
|||||||
class TestConsistencyGroupSnapshotDelete(TestConsistencyGroupSnapshot):
|
class TestConsistencyGroupSnapshotDelete(TestConsistencyGroupSnapshot):
|
||||||
|
|
||||||
consistency_group_snapshots = (
|
consistency_group_snapshots = (
|
||||||
volume_fakes.FakeConsistencyGroupSnapshot.
|
volume_fakes.create_consistency_group_snapshots(count=2)
|
||||||
create_consistency_group_snapshots(count=2)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConsistencyGroupSnapshotDelete, self).setUp()
|
super(TestConsistencyGroupSnapshotDelete, self).setUp()
|
||||||
|
|
||||||
self.cgsnapshots_mock.get = (
|
self.cgsnapshots_mock.get = (
|
||||||
volume_fakes.FakeConsistencyGroupSnapshot.
|
volume_fakes.get_consistency_group_snapshots(
|
||||||
get_consistency_group_snapshots(self.consistency_group_snapshots)
|
self.consistency_group_snapshots
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.cgsnapshots_mock.delete.return_value = None
|
self.cgsnapshots_mock.delete.return_value = None
|
||||||
|
|
||||||
@ -178,12 +175,9 @@ class TestConsistencyGroupSnapshotDelete(TestConsistencyGroupSnapshot):
|
|||||||
class TestConsistencyGroupSnapshotList(TestConsistencyGroupSnapshot):
|
class TestConsistencyGroupSnapshotList(TestConsistencyGroupSnapshot):
|
||||||
|
|
||||||
consistency_group_snapshots = (
|
consistency_group_snapshots = (
|
||||||
volume_fakes.FakeConsistencyGroupSnapshot.
|
volume_fakes.create_consistency_group_snapshots(count=2)
|
||||||
create_consistency_group_snapshots(count=2)
|
|
||||||
)
|
|
||||||
consistency_group = (
|
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group()
|
|
||||||
)
|
)
|
||||||
|
consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
|
|
||||||
columns = [
|
columns = [
|
||||||
'ID',
|
'ID',
|
||||||
@ -306,9 +300,7 @@ class TestConsistencyGroupSnapshotList(TestConsistencyGroupSnapshot):
|
|||||||
class TestConsistencyGroupSnapshotShow(TestConsistencyGroupSnapshot):
|
class TestConsistencyGroupSnapshotShow(TestConsistencyGroupSnapshot):
|
||||||
|
|
||||||
_consistency_group_snapshot = (
|
_consistency_group_snapshot = (
|
||||||
volume_fakes.
|
volume_fakes.create_one_consistency_group_snapshot()
|
||||||
FakeConsistencyGroupSnapshot.
|
|
||||||
create_one_consistency_group_snapshot()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
|
@ -39,8 +39,8 @@ class TestQos(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestQosAssociate(TestQos):
|
class TestQosAssociate(TestQos):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
volume_type = volume_fakes.create_one_volume_type()
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosAssociate, self).setUp()
|
super(TestQosAssociate, self).setUp()
|
||||||
@ -82,7 +82,7 @@ class TestQosCreate(TestQos):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosCreate, self).setUp()
|
super(TestQosCreate, self).setUp()
|
||||||
|
|
||||||
self.new_qos_spec = volume_fakes.FakeQos.create_one_qos()
|
self.new_qos_spec = volume_fakes.create_one_qos()
|
||||||
self.qos_mock.create.return_value = self.new_qos_spec
|
self.qos_mock.create.return_value = self.new_qos_spec
|
||||||
|
|
||||||
self.data = (
|
self.data = (
|
||||||
@ -164,13 +164,13 @@ class TestQosCreate(TestQos):
|
|||||||
|
|
||||||
class TestQosDelete(TestQos):
|
class TestQosDelete(TestQos):
|
||||||
|
|
||||||
qos_specs = volume_fakes.FakeQos.create_qoses(count=2)
|
qos_specs = volume_fakes.create_qoses(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosDelete, self).setUp()
|
super(TestQosDelete, self).setUp()
|
||||||
|
|
||||||
self.qos_mock.get = (
|
self.qos_mock.get = (
|
||||||
volume_fakes.FakeQos.get_qoses(self.qos_specs))
|
volume_fakes.get_qoses(self.qos_specs))
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
self.cmd = qos_specs.DeleteQos(self.app, None)
|
self.cmd = qos_specs.DeleteQos(self.app, None)
|
||||||
|
|
||||||
@ -255,8 +255,8 @@ class TestQosDelete(TestQos):
|
|||||||
|
|
||||||
class TestQosDisassociate(TestQos):
|
class TestQosDisassociate(TestQos):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
volume_type = volume_fakes.create_one_volume_type()
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosDisassociate, self).setUp()
|
super(TestQosDisassociate, self).setUp()
|
||||||
@ -303,8 +303,8 @@ class TestQosDisassociate(TestQos):
|
|||||||
|
|
||||||
class TestQosList(TestQos):
|
class TestQosList(TestQos):
|
||||||
|
|
||||||
qos_specs = volume_fakes.FakeQos.create_qoses(count=2)
|
qos_specs = volume_fakes.create_qoses(count=2)
|
||||||
qos_association = volume_fakes.FakeQos.create_one_qos_association()
|
qos_association = volume_fakes.create_one_qos_association()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -374,7 +374,7 @@ class TestQosList(TestQos):
|
|||||||
|
|
||||||
class TestQosSet(TestQos):
|
class TestQosSet(TestQos):
|
||||||
|
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosSet, self).setUp()
|
super(TestQosSet, self).setUp()
|
||||||
@ -406,8 +406,8 @@ class TestQosSet(TestQos):
|
|||||||
|
|
||||||
class TestQosShow(TestQos):
|
class TestQosShow(TestQos):
|
||||||
|
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
qos_association = volume_fakes.FakeQos.create_one_qos_association()
|
qos_association = volume_fakes.create_one_qos_association()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'associations',
|
'associations',
|
||||||
@ -454,7 +454,7 @@ class TestQosShow(TestQos):
|
|||||||
|
|
||||||
class TestQosUnset(TestQos):
|
class TestQosUnset(TestQos):
|
||||||
|
|
||||||
qos_spec = volume_fakes.FakeQos.create_one_qos()
|
qos_spec = volume_fakes.create_one_qos()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestQosUnset, self).setUp()
|
super(TestQosUnset, self).setUp()
|
||||||
|
@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
from osc_lib import exceptions
|
from osc_lib import exceptions
|
||||||
|
|
||||||
from openstackclient.tests.unit.volume.v2 import fakes as service_fakes
|
from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
|
||||||
from openstackclient.volume.v2 import service
|
from openstackclient.volume.v2 import service
|
||||||
|
|
||||||
|
|
||||||
class TestService(service_fakes.TestVolume):
|
class TestService(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestService, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Get a shortcut to the ServiceManager Mock
|
# Get a shortcut to the ServiceManager Mock
|
||||||
self.service_mock = self.app.client_manager.volume.services
|
self.service_mock = self.app.client_manager.volume.services
|
||||||
@ -31,10 +31,10 @@ class TestService(service_fakes.TestVolume):
|
|||||||
class TestServiceList(TestService):
|
class TestServiceList(TestService):
|
||||||
|
|
||||||
# The service to be listed
|
# The service to be listed
|
||||||
services = service_fakes.FakeService.create_one_service()
|
services = volume_fakes.create_one_service()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestServiceList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.service_mock.list.return_value = [self.services]
|
self.service_mock.list.return_value = [self.services]
|
||||||
|
|
||||||
@ -144,10 +144,10 @@ class TestServiceList(TestService):
|
|||||||
|
|
||||||
class TestServiceSet(TestService):
|
class TestServiceSet(TestService):
|
||||||
|
|
||||||
service = service_fakes.FakeService.create_one_service()
|
service = volume_fakes.create_one_service()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestServiceSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.service_mock.enable.return_value = self.service
|
self.service_mock.enable.return_value = self.service
|
||||||
self.service_mock.disable.return_value = self.service
|
self.service_mock.disable.return_value = self.service
|
||||||
|
@ -28,7 +28,7 @@ from openstackclient.volume.v2 import volume_type
|
|||||||
class TestType(volume_fakes.TestVolume):
|
class TestType(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestType, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock = self.app.client_manager.volume.volume_types
|
self.types_mock = self.app.client_manager.volume.volume_types
|
||||||
self.types_mock.reset_mock()
|
self.types_mock.reset_mock()
|
||||||
@ -56,10 +56,9 @@ class TestTypeCreate(TestType):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeCreate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.new_volume_type = \
|
self.new_volume_type = volume_fakes.create_one_volume_type()
|
||||||
volume_fakes.FakeVolumeType.create_one_volume_type()
|
|
||||||
self.data = (
|
self.data = (
|
||||||
self.new_volume_type.description,
|
self.new_volume_type.description,
|
||||||
self.new_volume_type.id,
|
self.new_volume_type.id,
|
||||||
@ -144,12 +143,12 @@ class TestTypeCreate(TestType):
|
|||||||
'key_size': '128',
|
'key_size': '128',
|
||||||
'control_location': 'front-end',
|
'control_location': 'front-end',
|
||||||
}
|
}
|
||||||
encryption_type = \
|
encryption_type = volume_fakes.create_one_encryption_volume_type(
|
||||||
volume_fakes.FakeVolumeType.create_one_encryption_volume_type(
|
attrs=encryption_info,
|
||||||
attrs=encryption_info)
|
)
|
||||||
self.new_volume_type = \
|
self.new_volume_type = volume_fakes.create_one_volume_type(
|
||||||
volume_fakes.FakeVolumeType.create_one_volume_type(
|
attrs={'encryption': encryption_info},
|
||||||
attrs={'encryption': encryption_info})
|
)
|
||||||
self.types_mock.create.return_value = self.new_volume_type
|
self.types_mock.create.return_value = self.new_volume_type
|
||||||
self.encryption_types_mock.create.return_value = encryption_type
|
self.encryption_types_mock.create.return_value = encryption_type
|
||||||
encryption_columns = (
|
encryption_columns = (
|
||||||
@ -203,13 +202,14 @@ class TestTypeCreate(TestType):
|
|||||||
|
|
||||||
class TestTypeDelete(TestType):
|
class TestTypeDelete(TestType):
|
||||||
|
|
||||||
volume_types = volume_fakes.FakeVolumeType.create_volume_types(count=2)
|
volume_types = volume_fakes.create_volume_types(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.get = volume_fakes.FakeVolumeType.get_volume_types(
|
self.types_mock.get = volume_fakes.get_volume_types(
|
||||||
self.volume_types)
|
self.volume_types,
|
||||||
|
)
|
||||||
self.types_mock.delete.return_value = None
|
self.types_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -278,7 +278,7 @@ class TestTypeDelete(TestType):
|
|||||||
|
|
||||||
class TestTypeList(TestType):
|
class TestTypeList(TestType):
|
||||||
|
|
||||||
volume_types = volume_fakes.FakeVolumeType.create_volume_types()
|
volume_types = volume_fakes.create_volume_types()
|
||||||
|
|
||||||
columns = [
|
columns = [
|
||||||
"ID",
|
"ID",
|
||||||
@ -312,7 +312,7 @@ class TestTypeList(TestType):
|
|||||||
))
|
))
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.list.return_value = self.volume_types
|
self.types_mock.list.return_value = self.volume_types
|
||||||
self.types_mock.default.return_value = self.volume_types[0]
|
self.types_mock.default.return_value = self.volume_types[0]
|
||||||
@ -388,9 +388,9 @@ class TestTypeList(TestType):
|
|||||||
self.assertCountEqual(self.data_with_default_type, list(data))
|
self.assertCountEqual(self.data_with_default_type, list(data))
|
||||||
|
|
||||||
def test_type_list_with_encryption(self):
|
def test_type_list_with_encryption(self):
|
||||||
encryption_type = \
|
encryption_type = volume_fakes.create_one_encryption_volume_type(
|
||||||
volume_fakes.FakeVolumeType.create_one_encryption_volume_type(
|
attrs={'volume_type_id': self.volume_types[0].id},
|
||||||
attrs={'volume_type_id': self.volume_types[0].id})
|
)
|
||||||
encryption_info = {
|
encryption_info = {
|
||||||
'provider': 'LuksEncryptor',
|
'provider': 'LuksEncryptor',
|
||||||
'cipher': None,
|
'cipher': None,
|
||||||
@ -436,11 +436,12 @@ class TestTypeList(TestType):
|
|||||||
class TestTypeSet(TestType):
|
class TestTypeSet(TestType):
|
||||||
|
|
||||||
project = identity_fakes.FakeProject.create_one_project()
|
project = identity_fakes.FakeProject.create_one_project()
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
volume_type = volume_fakes.create_one_volume_type(
|
||||||
methods={'set_keys': None})
|
methods={'set_keys': None},
|
||||||
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
|
|
||||||
@ -685,9 +686,9 @@ class TestTypeShow(TestType):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
self.volume_type = volume_fakes.create_one_volume_type()
|
||||||
self.data = (
|
self.data = (
|
||||||
None,
|
None,
|
||||||
self.volume_type.description,
|
self.volume_type.description,
|
||||||
@ -727,13 +728,20 @@ class TestTypeShow(TestType):
|
|||||||
]
|
]
|
||||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
private_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
private_type = volume_fakes.create_one_volume_type(
|
||||||
attrs={'is_public': False})
|
attrs={'is_public': False},
|
||||||
type_access_list = volume_fakes.FakeTypeAccess.create_one_type_access()
|
)
|
||||||
with mock.patch.object(self.types_mock, 'get',
|
type_access_list = volume_fakes.create_one_type_access()
|
||||||
return_value=private_type):
|
with mock.patch.object(
|
||||||
with mock.patch.object(self.types_access_mock, 'list',
|
self.types_mock,
|
||||||
return_value=[type_access_list]):
|
'get',
|
||||||
|
return_value=private_type,
|
||||||
|
):
|
||||||
|
with mock.patch.object(
|
||||||
|
self.types_access_mock,
|
||||||
|
'list',
|
||||||
|
return_value=[type_access_list],
|
||||||
|
):
|
||||||
columns, data = self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
self.types_mock.get.assert_called_once_with(
|
self.types_mock.get.assert_called_once_with(
|
||||||
self.volume_type.id)
|
self.volume_type.id)
|
||||||
@ -760,8 +768,9 @@ class TestTypeShow(TestType):
|
|||||||
]
|
]
|
||||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
private_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
private_type = volume_fakes.create_one_volume_type(
|
||||||
attrs={'is_public': False})
|
attrs={'is_public': False},
|
||||||
|
)
|
||||||
with mock.patch.object(self.types_mock, 'get',
|
with mock.patch.object(self.types_mock, 'get',
|
||||||
return_value=private_type):
|
return_value=private_type):
|
||||||
with mock.patch.object(self.types_access_mock, 'list',
|
with mock.patch.object(self.types_access_mock, 'list',
|
||||||
@ -784,16 +793,16 @@ class TestTypeShow(TestType):
|
|||||||
self.assertCountEqual(private_type_data, data)
|
self.assertCountEqual(private_type_data, data)
|
||||||
|
|
||||||
def test_type_show_with_encryption(self):
|
def test_type_show_with_encryption(self):
|
||||||
encryption_type = \
|
encryption_type = volume_fakes.create_one_encryption_volume_type()
|
||||||
volume_fakes.FakeVolumeType.create_one_encryption_volume_type()
|
|
||||||
encryption_info = {
|
encryption_info = {
|
||||||
'provider': 'LuksEncryptor',
|
'provider': 'LuksEncryptor',
|
||||||
'cipher': None,
|
'cipher': None,
|
||||||
'key_size': None,
|
'key_size': None,
|
||||||
'control_location': 'front-end',
|
'control_location': 'front-end',
|
||||||
}
|
}
|
||||||
self.volume_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
self.volume_type = volume_fakes.create_one_volume_type(
|
||||||
attrs={'encryption': encryption_info})
|
attrs={'encryption': encryption_info},
|
||||||
|
)
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
self.encryption_types_mock.get.return_value = encryption_type
|
self.encryption_types_mock.get.return_value = encryption_type
|
||||||
encryption_columns = (
|
encryption_columns = (
|
||||||
@ -834,11 +843,12 @@ class TestTypeShow(TestType):
|
|||||||
class TestTypeUnset(TestType):
|
class TestTypeUnset(TestType):
|
||||||
|
|
||||||
project = identity_fakes.FakeProject.create_one_project()
|
project = identity_fakes.FakeProject.create_one_project()
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type(
|
volume_type = volume_fakes.create_one_volume_type(
|
||||||
methods={'unset_keys': None})
|
methods={'unset_keys': None},
|
||||||
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTypeUnset, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
|
|
||||||
@ -936,7 +946,7 @@ class TestTypeUnset(TestType):
|
|||||||
class TestColumns(TestType):
|
class TestColumns(TestType):
|
||||||
|
|
||||||
def test_encryption_info_column_with_info(self):
|
def test_encryption_info_column_with_info(self):
|
||||||
fake_volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
fake_volume_type = volume_fakes.create_one_volume_type()
|
||||||
type_id = fake_volume_type.id
|
type_id = fake_volume_type.id
|
||||||
|
|
||||||
encryption_info = {
|
encryption_info = {
|
||||||
@ -952,7 +962,7 @@ class TestColumns(TestType):
|
|||||||
self.assertEqual(encryption_info, col.machine_readable())
|
self.assertEqual(encryption_info, col.machine_readable())
|
||||||
|
|
||||||
def test_encryption_info_column_without_info(self):
|
def test_encryption_info_column_without_info(self):
|
||||||
fake_volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
fake_volume_type = volume_fakes.create_one_volume_type()
|
||||||
type_id = fake_volume_type.id
|
type_id = fake_volume_type.id
|
||||||
|
|
||||||
col = volume_type.EncryptionInfoColumn(type_id, {})
|
col = volume_type.EncryptionInfoColumn(type_id, {})
|
||||||
|
@ -30,7 +30,7 @@ from openstackclient.volume.v2 import volume
|
|||||||
class TestVolume(volume_fakes.TestVolume):
|
class TestVolume(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolume, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock = self.app.client_manager.volume.volumes
|
self.volumes_mock = self.app.client_manager.volume.volumes
|
||||||
self.volumes_mock.reset_mock()
|
self.volumes_mock.reset_mock()
|
||||||
@ -55,11 +55,9 @@ class TestVolume(volume_fakes.TestVolume):
|
|||||||
self.consistencygroups_mock.reset_mock()
|
self.consistencygroups_mock.reset_mock()
|
||||||
|
|
||||||
def setup_volumes_mock(self, count):
|
def setup_volumes_mock(self, count):
|
||||||
volumes = volume_fakes.FakeVolume.create_volumes(count=count)
|
volumes = volume_fakes.create_volumes(count=count)
|
||||||
|
|
||||||
self.volumes_mock.get = volume_fakes.FakeVolume.get_volumes(
|
self.volumes_mock.get = volume_fakes.get_volumes(volumes, 0)
|
||||||
volumes,
|
|
||||||
0)
|
|
||||||
return volumes
|
return volumes
|
||||||
|
|
||||||
|
|
||||||
@ -83,9 +81,9 @@ class TestVolumeCreate(TestVolume):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeCreate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.new_volume = volume_fakes.FakeVolume.create_one_volume()
|
self.new_volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.create.return_value = self.new_volume
|
self.volumes_mock.create.return_value = self.new_volume
|
||||||
|
|
||||||
self.datalist = (
|
self.datalist = (
|
||||||
@ -139,8 +137,7 @@ class TestVolumeCreate(TestVolume):
|
|||||||
self.assertCountEqual(self.datalist, data)
|
self.assertCountEqual(self.datalist, data)
|
||||||
|
|
||||||
def test_volume_create_options(self):
|
def test_volume_create_options(self):
|
||||||
consistency_group = (
|
consistency_group = volume_fakes.create_one_consistency_group()
|
||||||
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
|
|
||||||
self.consistencygroups_mock.get.return_value = consistency_group
|
self.consistencygroups_mock.get.return_value = consistency_group
|
||||||
arglist = [
|
arglist = [
|
||||||
'--size', str(self.new_volume.size),
|
'--size', str(self.new_volume.size),
|
||||||
@ -297,7 +294,7 @@ class TestVolumeCreate(TestVolume):
|
|||||||
self.assertCountEqual(self.datalist, data)
|
self.assertCountEqual(self.datalist, data)
|
||||||
|
|
||||||
def test_volume_create_with_snapshot(self):
|
def test_volume_create_with_snapshot(self):
|
||||||
snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
|
snapshot = volume_fakes.create_one_snapshot()
|
||||||
self.new_volume.snapshot_id = snapshot.id
|
self.new_volume.snapshot_id = snapshot.id
|
||||||
arglist = [
|
arglist = [
|
||||||
'--snapshot', self.new_volume.snapshot_id,
|
'--snapshot', self.new_volume.snapshot_id,
|
||||||
@ -504,7 +501,7 @@ class TestVolumeCreate(TestVolume):
|
|||||||
class TestVolumeDelete(TestVolume):
|
class TestVolumeDelete(TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.delete.return_value = None
|
self.volumes_mock.delete.return_value = None
|
||||||
|
|
||||||
@ -632,9 +629,9 @@ class TestVolumeList(TestVolume):
|
|||||||
]
|
]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.mock_volume = volume_fakes.FakeVolume.create_one_volume()
|
self.mock_volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.list.return_value = [self.mock_volume]
|
self.volumes_mock.list.return_value = [self.mock_volume]
|
||||||
|
|
||||||
self.users_mock.get.return_value = self.user
|
self.users_mock.get.return_value = self.user
|
||||||
@ -1107,10 +1104,10 @@ class TestVolumeList(TestVolume):
|
|||||||
|
|
||||||
class TestVolumeMigrate(TestVolume):
|
class TestVolumeMigrate(TestVolume):
|
||||||
|
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeMigrate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.get.return_value = self._volume
|
self.volumes_mock.get.return_value = self._volume
|
||||||
self.volumes_mock.migrate_volume.return_value = None
|
self.volumes_mock.migrate_volume.return_value = None
|
||||||
@ -1173,12 +1170,12 @@ class TestVolumeMigrate(TestVolume):
|
|||||||
|
|
||||||
class TestVolumeSet(TestVolume):
|
class TestVolumeSet(TestVolume):
|
||||||
|
|
||||||
volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
volume_type = volume_fakes.create_one_volume_type()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.new_volume = volume_fakes.FakeVolume.create_one_volume()
|
self.new_volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.get.return_value = self.new_volume
|
self.volumes_mock.get.return_value = self.new_volume
|
||||||
self.types_mock.get.return_value = self.volume_type
|
self.types_mock.get.return_value = self.volume_type
|
||||||
|
|
||||||
@ -1427,9 +1424,9 @@ class TestVolumeSet(TestVolume):
|
|||||||
class TestVolumeShow(TestVolume):
|
class TestVolumeShow(TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self._volume = volume_fakes.FakeVolume.create_one_volume()
|
self._volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.get.return_value = self._volume
|
self.volumes_mock.get.return_value = self._volume
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
self.cmd = volume.ShowVolume(self.app, None)
|
self.cmd = volume.ShowVolume(self.app, None)
|
||||||
@ -1447,20 +1444,21 @@ class TestVolumeShow(TestVolume):
|
|||||||
self.volumes_mock.get.assert_called_with(self._volume.id)
|
self.volumes_mock.get.assert_called_with(self._volume.id)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
volume_fakes.FakeVolume.get_volume_columns(self._volume),
|
volume_fakes.get_volume_columns(self._volume),
|
||||||
columns)
|
columns,
|
||||||
|
)
|
||||||
self.assertCountEqual(
|
self.assertCountEqual(
|
||||||
volume_fakes.FakeVolume.get_volume_data(self._volume),
|
volume_fakes.get_volume_data(self._volume),
|
||||||
data)
|
data,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestVolumeUnset(TestVolume):
|
class TestVolumeUnset(TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeUnset, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.new_volume = volume_fakes.FakeVolume.create_one_volume()
|
self.new_volume = volume_fakes.create_one_volume()
|
||||||
self.volumes_mock.get.return_value = self.new_volume
|
self.volumes_mock.get.return_value = self.new_volume
|
||||||
|
|
||||||
# Get the command object to set property
|
# Get the command object to set property
|
||||||
@ -1538,7 +1536,7 @@ class TestVolumeUnset(TestVolume):
|
|||||||
class TestColumns(TestVolume):
|
class TestColumns(TestVolume):
|
||||||
|
|
||||||
def test_attachments_column_without_server_cache(self):
|
def test_attachments_column_without_server_cache(self):
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
server_id = _volume.attachments[0]['server_id']
|
server_id = _volume.attachments[0]['server_id']
|
||||||
device = _volume.attachments[0]['device']
|
device = _volume.attachments[0]['device']
|
||||||
|
|
||||||
@ -1548,7 +1546,7 @@ class TestColumns(TestVolume):
|
|||||||
self.assertEqual(_volume.attachments, col.machine_readable())
|
self.assertEqual(_volume.attachments, col.machine_readable())
|
||||||
|
|
||||||
def test_attachments_column_with_server_cache(self):
|
def test_attachments_column_with_server_cache(self):
|
||||||
_volume = volume_fakes.FakeVolume.create_one_volume()
|
_volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
server_id = _volume.attachments[0]['server_id']
|
server_id = _volume.attachments[0]['server_id']
|
||||||
device = _volume.attachments[0]['device']
|
device = _volume.attachments[0]['device']
|
||||||
|
@ -20,10 +20,10 @@ class TestShowVolumeCapability(volume_fakes.TestVolume):
|
|||||||
"""Test backend capability functionality."""
|
"""Test backend capability functionality."""
|
||||||
|
|
||||||
# The capability to be listed
|
# The capability to be listed
|
||||||
capability = volume_fakes.FakeCapability.create_one_capability()
|
capability = volume_fakes.create_one_capability()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestShowVolumeCapability, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Get a shortcut to the capability Mock
|
# Get a shortcut to the capability Mock
|
||||||
self.capability_mock = self.app.client_manager.volume.capabilities
|
self.capability_mock = self.app.client_manager.volume.capabilities
|
||||||
@ -77,10 +77,10 @@ class TestListVolumePool(volume_fakes.TestVolume):
|
|||||||
"""Tests for volume backend pool listing."""
|
"""Tests for volume backend pool listing."""
|
||||||
|
|
||||||
# The pool to be listed
|
# The pool to be listed
|
||||||
pools = volume_fakes.FakePool.create_one_pool()
|
pools = volume_fakes.create_one_pool()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestListVolumePool, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.pool_mock = self.app.client_manager.volume.pools
|
self.pool_mock = self.app.client_manager.volume.pools
|
||||||
self.pool_mock.list.return_value = [self.pools]
|
self.pool_mock.list.return_value = [self.pools]
|
||||||
|
@ -26,7 +26,7 @@ from openstackclient.volume.v2 import volume_backup
|
|||||||
class TestBackup(volume_fakes.TestVolume):
|
class TestBackup(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackup, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock = self.app.client_manager.volume.backups
|
self.backups_mock = self.app.client_manager.volume.backups
|
||||||
self.backups_mock.reset_mock()
|
self.backups_mock.reset_mock()
|
||||||
@ -40,9 +40,9 @@ class TestBackup(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestBackupCreate(TestBackup):
|
class TestBackupCreate(TestBackup):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
|
snapshot = volume_fakes.create_one_snapshot()
|
||||||
new_backup = volume_fakes.FakeBackup.create_one_backup(
|
new_backup = volume_fakes.create_one_backup(
|
||||||
attrs={'volume_id': volume.id, 'snapshot_id': snapshot.id})
|
attrs={'volume_id': volume.id, 'snapshot_id': snapshot.id})
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
@ -71,7 +71,7 @@ class TestBackupCreate(TestBackup):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupCreate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.get.return_value = self.volume
|
self.volumes_mock.get.return_value = self.volume
|
||||||
self.snapshots_mock.get.return_value = self.snapshot
|
self.snapshots_mock.get.return_value = self.snapshot
|
||||||
@ -242,13 +242,13 @@ class TestBackupCreate(TestBackup):
|
|||||||
|
|
||||||
class TestBackupDelete(TestBackup):
|
class TestBackupDelete(TestBackup):
|
||||||
|
|
||||||
backups = volume_fakes.FakeBackup.create_backups(count=2)
|
backups = volume_fakes.create_backups(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock.get = (
|
self.backups_mock.get = (
|
||||||
volume_fakes.FakeBackup.get_backups(self.backups))
|
volume_fakes.get_backups(self.backups))
|
||||||
self.backups_mock.delete.return_value = None
|
self.backups_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -334,8 +334,8 @@ class TestBackupDelete(TestBackup):
|
|||||||
|
|
||||||
class TestBackupList(TestBackup):
|
class TestBackupList(TestBackup):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
backups = volume_fakes.FakeBackup.create_backups(
|
backups = volume_fakes.create_backups(
|
||||||
attrs={'volume_id': volume.name}, count=3)
|
attrs={'volume_id': volume.name}, count=3)
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
@ -374,7 +374,7 @@ class TestBackupList(TestBackup):
|
|||||||
))
|
))
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volumes_mock.list.return_value = [self.volume]
|
self.volumes_mock.list.return_value = [self.volume]
|
||||||
self.backups_mock.list.return_value = self.backups
|
self.backups_mock.list.return_value = self.backups
|
||||||
@ -456,8 +456,8 @@ class TestBackupList(TestBackup):
|
|||||||
|
|
||||||
class TestBackupRestore(TestBackup):
|
class TestBackupRestore(TestBackup):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
backup = volume_fakes.FakeBackup.create_one_backup(
|
backup = volume_fakes.create_one_backup(
|
||||||
attrs={'volume_id': volume.id},
|
attrs={'volume_id': volume.id},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -467,7 +467,7 @@ class TestBackupRestore(TestBackup):
|
|||||||
self.backups_mock.get.return_value = self.backup
|
self.backups_mock.get.return_value = self.backup
|
||||||
self.volumes_mock.get.return_value = self.volume
|
self.volumes_mock.get.return_value = self.volume
|
||||||
self.restores_mock.restore.return_value = (
|
self.restores_mock.restore.return_value = (
|
||||||
volume_fakes.FakeVolume.create_one_volume(
|
volume_fakes.create_one_volume(
|
||||||
{'id': self.volume['id']},
|
{'id': self.volume['id']},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -550,12 +550,12 @@ class TestBackupRestore(TestBackup):
|
|||||||
|
|
||||||
class TestBackupSet(TestBackup):
|
class TestBackupSet(TestBackup):
|
||||||
|
|
||||||
backup = volume_fakes.FakeBackup.create_one_backup(
|
backup = volume_fakes.create_one_backup(
|
||||||
attrs={'metadata': {'wow': 'cool'}},
|
attrs={'metadata': {'wow': 'cool'}},
|
||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock.get.return_value = self.backup
|
self.backups_mock.get.return_value = self.backup
|
||||||
|
|
||||||
@ -784,7 +784,7 @@ class TestBackupSet(TestBackup):
|
|||||||
|
|
||||||
class TestBackupUnset(TestBackup):
|
class TestBackupUnset(TestBackup):
|
||||||
|
|
||||||
backup = volume_fakes.FakeBackup.create_one_backup(
|
backup = volume_fakes.create_one_backup(
|
||||||
attrs={'metadata': {'foo': 'bar'}},
|
attrs={'metadata': {'foo': 'bar'}},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -845,7 +845,7 @@ class TestBackupUnset(TestBackup):
|
|||||||
|
|
||||||
class TestBackupShow(TestBackup):
|
class TestBackupShow(TestBackup):
|
||||||
|
|
||||||
backup = volume_fakes.FakeBackup.create_one_backup()
|
backup = volume_fakes.create_one_backup()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'availability_zone',
|
'availability_zone',
|
||||||
@ -873,7 +873,7 @@ class TestBackupShow(TestBackup):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestBackupShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.backups_mock.get.return_value = self.backup
|
self.backups_mock.get.return_value = self.backup
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
|
@ -12,14 +12,14 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
from openstackclient.tests.unit.volume.v2 import fakes as host_fakes
|
from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
|
||||||
from openstackclient.volume.v2 import volume_host
|
from openstackclient.volume.v2 import volume_host
|
||||||
|
|
||||||
|
|
||||||
class TestVolumeHost(host_fakes.TestVolume):
|
class TestVolumeHost(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeHost, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.host_mock = self.app.client_manager.volume.services
|
self.host_mock = self.app.client_manager.volume.services
|
||||||
self.host_mock.reset_mock()
|
self.host_mock.reset_mock()
|
||||||
@ -27,10 +27,10 @@ class TestVolumeHost(host_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestVolumeHostSet(TestVolumeHost):
|
class TestVolumeHostSet(TestVolumeHost):
|
||||||
|
|
||||||
service = host_fakes.FakeService.create_one_service()
|
service = volume_fakes.create_one_service()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeHostSet, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.host_mock.freeze_host.return_value = None
|
self.host_mock.freeze_host.return_value = None
|
||||||
self.host_mock.thaw_host.return_value = None
|
self.host_mock.thaw_host.return_value = None
|
||||||
@ -89,10 +89,10 @@ class TestVolumeHostSet(TestVolumeHost):
|
|||||||
|
|
||||||
class TestVolumeHostFailover(TestVolumeHost):
|
class TestVolumeHostFailover(TestVolumeHost):
|
||||||
|
|
||||||
service = host_fakes.FakeService.create_one_service()
|
service = volume_fakes.create_one_service()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeHostFailover, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.host_mock.failover_host.return_value = None
|
self.host_mock.failover_host.return_value = None
|
||||||
|
|
||||||
|
@ -54,8 +54,8 @@ class TestVolumeSnapshotCreate(TestVolumeSnapshot):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume = volume_fakes.FakeVolume.create_one_volume()
|
self.volume = volume_fakes.create_one_volume()
|
||||||
self.new_snapshot = volume_fakes.FakeSnapshot.create_one_snapshot(
|
self.new_snapshot = volume_fakes.create_one_snapshot(
|
||||||
attrs={'volume_id': self.volume.id})
|
attrs={'volume_id': self.volume.id})
|
||||||
|
|
||||||
self.data = (
|
self.data = (
|
||||||
@ -179,13 +179,13 @@ class TestVolumeSnapshotCreate(TestVolumeSnapshot):
|
|||||||
|
|
||||||
class TestVolumeSnapshotDelete(TestVolumeSnapshot):
|
class TestVolumeSnapshotDelete(TestVolumeSnapshot):
|
||||||
|
|
||||||
snapshots = volume_fakes.FakeSnapshot.create_snapshots(count=2)
|
snapshots = volume_fakes.create_snapshots(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.snapshots_mock.get = (
|
self.snapshots_mock.get = (
|
||||||
volume_fakes.FakeSnapshot.get_snapshots(self.snapshots))
|
volume_fakes.get_snapshots(self.snapshots))
|
||||||
self.snapshots_mock.delete.return_value = None
|
self.snapshots_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -273,9 +273,9 @@ class TestVolumeSnapshotDelete(TestVolumeSnapshot):
|
|||||||
|
|
||||||
class TestVolumeSnapshotList(TestVolumeSnapshot):
|
class TestVolumeSnapshotList(TestVolumeSnapshot):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
project = project_fakes.FakeProject.create_one_project()
|
project = project_fakes.FakeProject.create_one_project()
|
||||||
snapshots = volume_fakes.FakeSnapshot.create_snapshots(
|
snapshots = volume_fakes.create_snapshots(
|
||||||
attrs={'volume_id': volume.name}, count=3)
|
attrs={'volume_id': volume.name}, count=3)
|
||||||
|
|
||||||
columns = [
|
columns = [
|
||||||
@ -495,7 +495,7 @@ class TestVolumeSnapshotList(TestVolumeSnapshot):
|
|||||||
|
|
||||||
class TestVolumeSnapshotSet(TestVolumeSnapshot):
|
class TestVolumeSnapshotSet(TestVolumeSnapshot):
|
||||||
|
|
||||||
snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
|
snapshot = volume_fakes.create_one_snapshot()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -677,7 +677,7 @@ class TestVolumeSnapshotShow(TestVolumeSnapshot):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
|
self.snapshot = volume_fakes.create_one_snapshot()
|
||||||
|
|
||||||
self.data = (
|
self.data = (
|
||||||
self.snapshot.created_at,
|
self.snapshot.created_at,
|
||||||
@ -712,7 +712,7 @@ class TestVolumeSnapshotShow(TestVolumeSnapshot):
|
|||||||
|
|
||||||
class TestVolumeSnapshotUnset(TestVolumeSnapshot):
|
class TestVolumeSnapshotUnset(TestVolumeSnapshot):
|
||||||
|
|
||||||
snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
|
snapshot = volume_fakes.create_one_snapshot()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
@ -20,14 +20,14 @@ from osc_lib import exceptions
|
|||||||
from osc_lib import utils
|
from osc_lib import utils
|
||||||
|
|
||||||
from openstackclient.tests.unit import utils as test_utils
|
from openstackclient.tests.unit import utils as test_utils
|
||||||
from openstackclient.tests.unit.volume.v2 import fakes as transfer_fakes
|
from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
|
||||||
from openstackclient.volume.v2 import volume_transfer_request
|
from openstackclient.volume.v2 import volume_transfer_request
|
||||||
|
|
||||||
|
|
||||||
class TestTransfer(transfer_fakes.TestVolume):
|
class TestTransfer(volume_fakes.TestVolume):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransfer, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Get a shortcut to the TransferManager Mock
|
# Get a shortcut to the TransferManager Mock
|
||||||
self.transfer_mock = self.app.client_manager.volume.transfers
|
self.transfer_mock = self.app.client_manager.volume.transfers
|
||||||
@ -47,10 +47,9 @@ class TestTransferAccept(TestTransfer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferAccept, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_transfer = (
|
self.volume_transfer = volume_fakes.create_one_transfer()
|
||||||
transfer_fakes.FakeTransfer.create_one_transfer())
|
|
||||||
self.data = (
|
self.data = (
|
||||||
self.volume_transfer.id,
|
self.volume_transfer.id,
|
||||||
self.volume_transfer.name,
|
self.volume_transfer.name,
|
||||||
@ -106,7 +105,7 @@ class TestTransferAccept(TestTransfer):
|
|||||||
|
|
||||||
class TestTransferCreate(TestTransfer):
|
class TestTransferCreate(TestTransfer):
|
||||||
|
|
||||||
volume = transfer_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'auth_key',
|
'auth_key',
|
||||||
@ -117,12 +116,14 @@ class TestTransferCreate(TestTransfer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferCreate, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_transfer = transfer_fakes.FakeTransfer.create_one_transfer(
|
self.volume_transfer = volume_fakes.create_one_transfer(
|
||||||
attrs={'volume_id': self.volume.id,
|
attrs={
|
||||||
|
'volume_id': self.volume.id,
|
||||||
'auth_key': 'key',
|
'auth_key': 'key',
|
||||||
'created_at': 'time'}
|
'created_at': 'time',
|
||||||
|
},
|
||||||
)
|
)
|
||||||
self.data = (
|
self.data = (
|
||||||
self.volume_transfer.auth_key,
|
self.volume_transfer.auth_key,
|
||||||
@ -221,13 +222,14 @@ class TestTransferCreate(TestTransfer):
|
|||||||
|
|
||||||
class TestTransferDelete(TestTransfer):
|
class TestTransferDelete(TestTransfer):
|
||||||
|
|
||||||
volume_transfers = transfer_fakes.FakeTransfer.create_transfers(count=2)
|
volume_transfers = volume_fakes.create_transfers(count=2)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferDelete, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.transfer_mock.get = (
|
self.transfer_mock.get = volume_fakes.get_transfers(
|
||||||
transfer_fakes.FakeTransfer.get_transfers(self.volume_transfers))
|
self.volume_transfers,
|
||||||
|
)
|
||||||
self.transfer_mock.delete.return_value = None
|
self.transfer_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -300,10 +302,10 @@ class TestTransferDelete(TestTransfer):
|
|||||||
class TestTransferList(TestTransfer):
|
class TestTransferList(TestTransfer):
|
||||||
|
|
||||||
# The Transfers to be listed
|
# The Transfers to be listed
|
||||||
volume_transfers = transfer_fakes.FakeTransfer.create_one_transfer()
|
volume_transfers = volume_fakes.create_one_transfer()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferList, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.transfer_mock.list.return_value = [self.volume_transfers]
|
self.transfer_mock.list.return_value = [self.volume_transfers]
|
||||||
|
|
||||||
@ -394,11 +396,10 @@ class TestTransferShow(TestTransfer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestTransferShow, self).setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_transfer = (
|
self.volume_transfer = volume_fakes.create_one_transfer(
|
||||||
transfer_fakes.FakeTransfer.create_one_transfer(
|
attrs={'created_at': 'time'},
|
||||||
attrs={'created_at': 'time'})
|
|
||||||
)
|
)
|
||||||
self.data = (
|
self.data = (
|
||||||
self.volume_transfer.created_at,
|
self.volume_transfer.created_at,
|
||||||
|
@ -24,7 +24,6 @@ from openstackclient.tests.unit.volume.v2 import fakes as volume_v2_fakes
|
|||||||
|
|
||||||
|
|
||||||
class FakeVolumeClient:
|
class FakeVolumeClient:
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.auth_token = kwargs['token']
|
self.auth_token = kwargs['token']
|
||||||
self.management_url = kwargs['endpoint']
|
self.management_url = kwargs['endpoint']
|
||||||
@ -51,17 +50,14 @@ class FakeVolumeClient:
|
|||||||
|
|
||||||
|
|
||||||
class TestVolume(utils.TestCommand):
|
class TestVolume(utils.TestCommand):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.app.client_manager.volume = FakeVolumeClient(
|
self.app.client_manager.volume = FakeVolumeClient(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL, token=fakes.AUTH_TOKEN
|
||||||
token=fakes.AUTH_TOKEN
|
|
||||||
)
|
)
|
||||||
self.app.client_manager.identity = identity_fakes.FakeIdentityv3Client(
|
self.app.client_manager.identity = identity_fakes.FakeIdentityv3Client(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL, token=fakes.AUTH_TOKEN
|
||||||
token=fakes.AUTH_TOKEN
|
|
||||||
)
|
)
|
||||||
self.app.client_manager.compute = compute_fakes.FakeComputev2Client(
|
self.app.client_manager.compute = compute_fakes.FakeComputev2Client(
|
||||||
endpoint=fakes.AUTH_URL,
|
endpoint=fakes.AUTH_URL,
|
||||||
@ -70,15 +66,11 @@ class TestVolume(utils.TestCommand):
|
|||||||
|
|
||||||
|
|
||||||
# TODO(stephenfin): Check if the responses are actually the same
|
# TODO(stephenfin): Check if the responses are actually the same
|
||||||
FakeVolume = volume_v2_fakes.FakeVolume
|
create_one_volume = volume_v2_fakes.create_one_volume
|
||||||
FakeVolumeType = volume_v2_fakes.FakeVolumeType
|
create_one_volume_type = volume_v2_fakes.create_one_volume_type
|
||||||
|
|
||||||
|
|
||||||
class FakeCluster:
|
def create_one_cluster(attrs=None):
|
||||||
"""Fake one or more clusters."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_cluster(attrs=None):
|
|
||||||
"""Create a fake service cluster.
|
"""Create a fake service cluster.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of service cluster
|
:param attrs: A dictionary with all attributes of service cluster
|
||||||
@ -106,13 +98,10 @@ class FakeCluster:
|
|||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
cluster_info.update(attrs)
|
cluster_info.update(attrs)
|
||||||
|
|
||||||
return fakes.FakeResource(
|
return fakes.FakeResource(None, cluster_info, loaded=True)
|
||||||
None,
|
|
||||||
cluster_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_clusters(attrs=None, count=2):
|
def create_clusters(attrs=None, count=2):
|
||||||
"""Create multiple fake service clusters.
|
"""Create multiple fake service clusters.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of service cluster
|
:param attrs: A dictionary with all attributes of service cluster
|
||||||
@ -121,16 +110,12 @@ class FakeCluster:
|
|||||||
"""
|
"""
|
||||||
clusters = []
|
clusters = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
clusters.append(FakeCluster.create_one_cluster(attrs))
|
clusters.append(create_one_cluster(attrs))
|
||||||
|
|
||||||
return clusters
|
return clusters
|
||||||
|
|
||||||
|
|
||||||
class FakeResourceFilter:
|
def create_one_resource_filter(attrs=None):
|
||||||
"""Fake one or more resource filters."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_resource_filter(attrs=None):
|
|
||||||
"""Create a fake resource filter.
|
"""Create a fake resource filter.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of resource filter
|
:param attrs: A dictionary with all attributes of resource filter
|
||||||
@ -156,8 +141,8 @@ class FakeResourceFilter:
|
|||||||
|
|
||||||
return fakes.FakeResource(None, resource_filter_info, loaded=True)
|
return fakes.FakeResource(None, resource_filter_info, loaded=True)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_resource_filters(attrs=None, count=2):
|
def create_resource_filters(attrs=None, count=2):
|
||||||
"""Create multiple fake resource filters.
|
"""Create multiple fake resource filters.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of resource filter
|
:param attrs: A dictionary with all attributes of resource filter
|
||||||
@ -166,18 +151,12 @@ class FakeResourceFilter:
|
|||||||
"""
|
"""
|
||||||
resource_filters = []
|
resource_filters = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
resource_filters.append(
|
resource_filters.append(create_one_resource_filter(attrs))
|
||||||
FakeResourceFilter.create_one_resource_filter(attrs)
|
|
||||||
)
|
|
||||||
|
|
||||||
return resource_filters
|
return resource_filters
|
||||||
|
|
||||||
|
|
||||||
class FakeVolumeGroup:
|
def create_one_volume_group(attrs=None):
|
||||||
"""Fake one or more volume groups."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume_group(attrs=None):
|
|
||||||
"""Create a fake group.
|
"""Create a fake group.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of group
|
:param attrs: A dictionary with all attributes of group
|
||||||
@ -191,9 +170,11 @@ class FakeVolumeGroup:
|
|||||||
# Set default attribute
|
# Set default attribute
|
||||||
group_info = {
|
group_info = {
|
||||||
'id': uuid.uuid4().hex,
|
'id': uuid.uuid4().hex,
|
||||||
'status': random.choice([
|
'status': random.choice(
|
||||||
|
[
|
||||||
'available',
|
'available',
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
'availability_zone': f'az-{uuid.uuid4().hex}',
|
'availability_zone': f'az-{uuid.uuid4().hex}',
|
||||||
'created_at': '2015-09-16T09:28:52.000000',
|
'created_at': '2015-09-16T09:28:52.000000',
|
||||||
'name': 'first_group',
|
'name': 'first_group',
|
||||||
@ -209,14 +190,11 @@ class FakeVolumeGroup:
|
|||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
group_info.update(attrs)
|
group_info.update(attrs)
|
||||||
|
|
||||||
group = fakes.FakeResource(
|
group = fakes.FakeResource(None, group_info, loaded=True)
|
||||||
None,
|
|
||||||
group_info,
|
|
||||||
loaded=True)
|
|
||||||
return group
|
return group
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volume_groups(attrs=None, count=2):
|
def create_volume_groups(attrs=None, count=2):
|
||||||
"""Create multiple fake groups.
|
"""Create multiple fake groups.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of group
|
:param attrs: A dictionary with all attributes of group
|
||||||
@ -225,16 +203,12 @@ class FakeVolumeGroup:
|
|||||||
"""
|
"""
|
||||||
groups = []
|
groups = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
groups.append(FakeVolumeGroup.create_one_volume_group(attrs))
|
groups.append(create_one_volume_group(attrs))
|
||||||
|
|
||||||
return groups
|
return groups
|
||||||
|
|
||||||
|
|
||||||
class FakeVolumeGroupSnapshot:
|
def create_one_volume_group_snapshot(attrs=None, methods=None):
|
||||||
"""Fake one or more volume group snapshots."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume_group_snapshot(attrs=None, methods=None):
|
|
||||||
"""Create a fake group snapshot.
|
"""Create a fake group snapshot.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes
|
:param attrs: A dictionary with all attributes
|
||||||
@ -258,14 +232,12 @@ class FakeVolumeGroupSnapshot:
|
|||||||
group_snapshot_info.update(attrs)
|
group_snapshot_info.update(attrs)
|
||||||
|
|
||||||
group_snapshot = fakes.FakeResource(
|
group_snapshot = fakes.FakeResource(
|
||||||
None,
|
None, group_snapshot_info, methods=methods, loaded=True
|
||||||
group_snapshot_info,
|
)
|
||||||
methods=methods,
|
|
||||||
loaded=True)
|
|
||||||
return group_snapshot
|
return group_snapshot
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volume_group_snapshots(attrs=None, count=2):
|
def create_volume_group_snapshots(attrs=None, count=2):
|
||||||
"""Create multiple fake group snapshots.
|
"""Create multiple fake group snapshots.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of group snapshot
|
:param attrs: A dictionary with all attributes of group snapshot
|
||||||
@ -274,18 +246,12 @@ class FakeVolumeGroupSnapshot:
|
|||||||
"""
|
"""
|
||||||
group_snapshots = []
|
group_snapshots = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
group_snapshots.append(
|
group_snapshots.append(create_one_volume_group_snapshot(attrs))
|
||||||
FakeVolumeGroupSnapshot.create_one_volume_group_snapshot(attrs)
|
|
||||||
)
|
|
||||||
|
|
||||||
return group_snapshots
|
return group_snapshots
|
||||||
|
|
||||||
|
|
||||||
class FakeVolumeGroupType:
|
def create_one_volume_group_type(attrs=None, methods=None):
|
||||||
"""Fake one or more volume group types."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume_group_type(attrs=None, methods=None):
|
|
||||||
"""Create a fake group type.
|
"""Create a fake group type.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of group type
|
:param attrs: A dictionary with all attributes of group type
|
||||||
@ -307,14 +273,12 @@ class FakeVolumeGroupType:
|
|||||||
group_type_info.update(attrs)
|
group_type_info.update(attrs)
|
||||||
|
|
||||||
group_type = fakes.FakeResource(
|
group_type = fakes.FakeResource(
|
||||||
None,
|
None, group_type_info, methods=methods, loaded=True
|
||||||
group_type_info,
|
)
|
||||||
methods=methods,
|
|
||||||
loaded=True)
|
|
||||||
return group_type
|
return group_type
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volume_group_types(attrs=None, count=2):
|
def create_volume_group_types(attrs=None, count=2):
|
||||||
"""Create multiple fake group types.
|
"""Create multiple fake group types.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of group type
|
:param attrs: A dictionary with all attributes of group type
|
||||||
@ -323,18 +287,12 @@ class FakeVolumeGroupType:
|
|||||||
"""
|
"""
|
||||||
group_types = []
|
group_types = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
group_types.append(
|
group_types.append(create_one_volume_group_type(attrs))
|
||||||
FakeVolumeGroupType.create_one_volume_group_type(attrs)
|
|
||||||
)
|
|
||||||
|
|
||||||
return group_types
|
return group_types
|
||||||
|
|
||||||
|
|
||||||
class FakeVolumeMessage:
|
def create_one_volume_message(attrs=None):
|
||||||
"""Fake one or more volume messages."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume_message(attrs=None):
|
|
||||||
"""Create a fake message.
|
"""Create a fake message.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of message
|
:param attrs: A dictionary with all attributes of message
|
||||||
@ -358,13 +316,10 @@ class FakeVolumeMessage:
|
|||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
message_info.update(attrs)
|
message_info.update(attrs)
|
||||||
|
|
||||||
return fakes.FakeResource(
|
return fakes.FakeResource(None, message_info, loaded=True)
|
||||||
None,
|
|
||||||
message_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volume_messages(attrs=None, count=2):
|
def create_volume_messages(attrs=None, count=2):
|
||||||
"""Create multiple fake messages.
|
"""Create multiple fake messages.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of message
|
:param attrs: A dictionary with all attributes of message
|
||||||
@ -373,12 +328,12 @@ class FakeVolumeMessage:
|
|||||||
"""
|
"""
|
||||||
messages = []
|
messages = []
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
messages.append(FakeVolumeMessage.create_one_volume_message(attrs))
|
messages.append(create_one_volume_message(attrs))
|
||||||
|
|
||||||
return messages
|
return messages
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volume_messages(messages=None, count=2):
|
def get_volume_messages(messages=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked messages.
|
"""Get an iterable MagicMock object with a list of faked messages.
|
||||||
|
|
||||||
If messages list is provided, then initialize the Mock object with the
|
If messages list is provided, then initialize the Mock object with the
|
||||||
@ -390,16 +345,12 @@ class FakeVolumeMessage:
|
|||||||
messages
|
messages
|
||||||
"""
|
"""
|
||||||
if messages is None:
|
if messages is None:
|
||||||
messages = FakeVolumeMessage.create_messages(count)
|
messages = create_volume_messages(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=messages)
|
return mock.Mock(side_effect=messages)
|
||||||
|
|
||||||
|
|
||||||
class FakeVolumeAttachment:
|
def create_one_volume_attachment(attrs=None):
|
||||||
"""Fake one or more volume attachments."""
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_one_volume_attachment(attrs=None):
|
|
||||||
"""Create a fake volume attachment.
|
"""Create a fake volume attachment.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of volume attachment
|
:param attrs: A dictionary with all attributes of volume attachment
|
||||||
@ -416,7 +367,8 @@ class FakeVolumeAttachment:
|
|||||||
'id': attachment_id,
|
'id': attachment_id,
|
||||||
'volume_id': volume_id,
|
'volume_id': volume_id,
|
||||||
'instance': server_id,
|
'instance': server_id,
|
||||||
'status': random.choice([
|
'status': random.choice(
|
||||||
|
[
|
||||||
'attached',
|
'attached',
|
||||||
'attaching',
|
'attaching',
|
||||||
'detached',
|
'detached',
|
||||||
@ -424,7 +376,8 @@ class FakeVolumeAttachment:
|
|||||||
'error_attaching',
|
'error_attaching',
|
||||||
'error_detaching',
|
'error_detaching',
|
||||||
'deleted',
|
'deleted',
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
'attach_mode': random.choice(['ro', 'rw']),
|
'attach_mode': random.choice(['ro', 'rw']),
|
||||||
'attached_at': '2015-09-16T09:28:52.000000',
|
'attached_at': '2015-09-16T09:28:52.000000',
|
||||||
'detached_at': None,
|
'detached_at': None,
|
||||||
@ -439,8 +392,7 @@ class FakeVolumeAttachment:
|
|||||||
'encrypted': False,
|
'encrypted': False,
|
||||||
'qos_specs': None,
|
'qos_specs': None,
|
||||||
'target_discovered': False,
|
'target_discovered': False,
|
||||||
'target_iqn':
|
'target_iqn': f'iqn.2010-10.org.openstack:volume-{attachment_id}',
|
||||||
f'iqn.2010-10.org.openstack:volume-{attachment_id}',
|
|
||||||
'target_lun': '1',
|
'target_lun': '1',
|
||||||
'target_portal': '192.168.122.170:3260',
|
'target_portal': '192.168.122.170:3260',
|
||||||
'volume_id': volume_id,
|
'volume_id': volume_id,
|
||||||
@ -450,13 +402,10 @@ class FakeVolumeAttachment:
|
|||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
attachment_info.update(attrs)
|
attachment_info.update(attrs)
|
||||||
|
|
||||||
return fakes.FakeResource(
|
return fakes.FakeResource(None, attachment_info, loaded=True)
|
||||||
None,
|
|
||||||
attachment_info,
|
|
||||||
loaded=True)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def create_volume_attachments(attrs=None, count=2):
|
def create_volume_attachments(attrs=None, count=2):
|
||||||
"""Create multiple fake volume attachments.
|
"""Create multiple fake volume attachments.
|
||||||
|
|
||||||
:param attrs: A dictionary with all attributes of volume attachment
|
:param attrs: A dictionary with all attributes of volume attachment
|
||||||
@ -466,13 +415,12 @@ class FakeVolumeAttachment:
|
|||||||
attachments = []
|
attachments = []
|
||||||
|
|
||||||
for n in range(0, count):
|
for n in range(0, count):
|
||||||
attachments.append(
|
attachments.append(create_one_volume_attachment(attrs))
|
||||||
FakeVolumeAttachment.create_one_volume_attachment(attrs))
|
|
||||||
|
|
||||||
return attachments
|
return attachments
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_volume_attachments(attachments=None, count=2):
|
def get_volume_attachments(attachments=None, count=2):
|
||||||
"""Get an iterable MagicMock object with a list of faked volumes.
|
"""Get an iterable MagicMock object with a list of faked volumes.
|
||||||
|
|
||||||
If attachments list is provided, then initialize the Mock object with
|
If attachments list is provided, then initialize the Mock object with
|
||||||
@ -485,6 +433,6 @@ class FakeVolumeAttachment:
|
|||||||
volume attachments
|
volume attachments
|
||||||
"""
|
"""
|
||||||
if attachments is None:
|
if attachments is None:
|
||||||
attachments = FakeVolumeAttachment.create_volume_attachments(count)
|
attachments = create_volume_attachments(count)
|
||||||
|
|
||||||
return mock.Mock(side_effect=attachments)
|
return mock.Mock(side_effect=attachments)
|
||||||
|
@ -30,7 +30,7 @@ class TestBlockStorageCluster(volume_fakes.TestVolume):
|
|||||||
class TestBlockStorageClusterList(TestBlockStorageCluster):
|
class TestBlockStorageClusterList(TestBlockStorageCluster):
|
||||||
|
|
||||||
# The cluster to be listed
|
# The cluster to be listed
|
||||||
fake_clusters = volume_fakes.FakeCluster.create_clusters()
|
fake_clusters = volume_fakes.create_clusters()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -176,7 +176,7 @@ class TestBlockStorageClusterList(TestBlockStorageCluster):
|
|||||||
|
|
||||||
class TestBlockStorageClusterSet(TestBlockStorageCluster):
|
class TestBlockStorageClusterSet(TestBlockStorageCluster):
|
||||||
|
|
||||||
cluster = volume_fakes.FakeCluster.create_one_cluster()
|
cluster = volume_fakes.create_one_cluster()
|
||||||
columns = (
|
columns = (
|
||||||
'Name',
|
'Name',
|
||||||
'Binary',
|
'Binary',
|
||||||
@ -347,7 +347,7 @@ class TestBlockStorageClusterSet(TestBlockStorageCluster):
|
|||||||
|
|
||||||
class TestBlockStorageClusterShow(TestBlockStorageCluster):
|
class TestBlockStorageClusterShow(TestBlockStorageCluster):
|
||||||
|
|
||||||
cluster = volume_fakes.FakeCluster.create_one_cluster()
|
cluster = volume_fakes.create_one_cluster()
|
||||||
columns = (
|
columns = (
|
||||||
'Name',
|
'Name',
|
||||||
'Binary',
|
'Binary',
|
||||||
|
@ -31,8 +31,7 @@ class TestBlockStorageResourceFilter(volume_fakes.TestVolume):
|
|||||||
class TestBlockStorageResourceFilterList(TestBlockStorageResourceFilter):
|
class TestBlockStorageResourceFilterList(TestBlockStorageResourceFilter):
|
||||||
|
|
||||||
# The resource filters to be listed
|
# The resource filters to be listed
|
||||||
fake_resource_filters = \
|
fake_resource_filters = volume_fakes.create_resource_filters()
|
||||||
volume_fakes.FakeResourceFilter.create_resource_filters()
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -86,8 +85,7 @@ class TestBlockStorageResourceFilterList(TestBlockStorageResourceFilter):
|
|||||||
class TestBlockStorageResourceFilterShow(TestBlockStorageResourceFilter):
|
class TestBlockStorageResourceFilterShow(TestBlockStorageResourceFilter):
|
||||||
|
|
||||||
# The resource filters to be listed
|
# The resource filters to be listed
|
||||||
fake_resource_filter = \
|
fake_resource_filter = volume_fakes.create_one_resource_filter()
|
||||||
volume_fakes.FakeResourceFilter.create_one_resource_filter()
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
@ -41,11 +41,11 @@ class TestVolumeAttachment(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestVolumeAttachmentCreate(TestVolumeAttachment):
|
class TestVolumeAttachmentCreate(TestVolumeAttachment):
|
||||||
|
|
||||||
volume = volume_fakes.FakeVolume.create_one_volume()
|
volume = volume_fakes.create_one_volume()
|
||||||
server = compute_fakes.FakeServer.create_one_server()
|
server = compute_fakes.FakeServer.create_one_server()
|
||||||
volume_attachment = \
|
volume_attachment = volume_fakes.create_one_volume_attachment(
|
||||||
volume_fakes.FakeVolumeAttachment.create_one_volume_attachment(
|
attrs={'instance': server.id, 'volume_id': volume.id},
|
||||||
attrs={'instance': server.id, 'volume_id': volume.id})
|
)
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -238,8 +238,7 @@ class TestVolumeAttachmentCreate(TestVolumeAttachment):
|
|||||||
|
|
||||||
class TestVolumeAttachmentDelete(TestVolumeAttachment):
|
class TestVolumeAttachmentDelete(TestVolumeAttachment):
|
||||||
|
|
||||||
volume_attachment = \
|
volume_attachment = volume_fakes.create_one_volume_attachment()
|
||||||
volume_fakes.FakeVolumeAttachment.create_one_volume_attachment()
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -290,8 +289,7 @@ class TestVolumeAttachmentDelete(TestVolumeAttachment):
|
|||||||
|
|
||||||
class TestVolumeAttachmentSet(TestVolumeAttachment):
|
class TestVolumeAttachmentSet(TestVolumeAttachment):
|
||||||
|
|
||||||
volume_attachment = \
|
volume_attachment = volume_fakes.create_one_volume_attachment()
|
||||||
volume_fakes.FakeVolumeAttachment.create_one_volume_attachment()
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -391,8 +389,7 @@ class TestVolumeAttachmentSet(TestVolumeAttachment):
|
|||||||
|
|
||||||
class TestVolumeAttachmentComplete(TestVolumeAttachment):
|
class TestVolumeAttachmentComplete(TestVolumeAttachment):
|
||||||
|
|
||||||
volume_attachment = \
|
volume_attachment = volume_fakes.create_one_volume_attachment()
|
||||||
volume_fakes.FakeVolumeAttachment.create_one_volume_attachment()
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -444,8 +441,7 @@ class TestVolumeAttachmentComplete(TestVolumeAttachment):
|
|||||||
class TestVolumeAttachmentList(TestVolumeAttachment):
|
class TestVolumeAttachmentList(TestVolumeAttachment):
|
||||||
|
|
||||||
project = identity_fakes.FakeProject.create_one_project()
|
project = identity_fakes.FakeProject.create_one_project()
|
||||||
volume_attachments = \
|
volume_attachments = volume_fakes.create_volume_attachments()
|
||||||
volume_fakes.FakeVolumeAttachment.create_volume_attachments()
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
|
@ -35,10 +35,9 @@ class TestVolumeGroup(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestVolumeGroupCreate(TestVolumeGroup):
|
class TestVolumeGroupCreate(TestVolumeGroup):
|
||||||
|
|
||||||
fake_volume_type = volume_fakes.FakeVolumeType.create_one_volume_type()
|
fake_volume_type = volume_fakes.create_one_volume_type()
|
||||||
fake_volume_group_type = \
|
fake_volume_group_type = volume_fakes.create_one_volume_group_type()
|
||||||
volume_fakes.FakeVolumeGroupType.create_one_volume_group_type()
|
fake_volume_group = volume_fakes.create_one_volume_group(
|
||||||
fake_volume_group = volume_fakes.FakeVolumeGroup.create_one_volume_group(
|
|
||||||
attrs={
|
attrs={
|
||||||
'group_type': fake_volume_group_type.id,
|
'group_type': fake_volume_group_type.id,
|
||||||
'volume_types': [fake_volume_type.id],
|
'volume_types': [fake_volume_type.id],
|
||||||
@ -180,8 +179,7 @@ class TestVolumeGroupCreate(TestVolumeGroup):
|
|||||||
|
|
||||||
class TestVolumeGroupDelete(TestVolumeGroup):
|
class TestVolumeGroupDelete(TestVolumeGroup):
|
||||||
|
|
||||||
fake_volume_group = \
|
fake_volume_group = volume_fakes.create_one_volume_group()
|
||||||
volume_fakes.FakeVolumeGroup.create_one_volume_group()
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -236,8 +234,7 @@ class TestVolumeGroupDelete(TestVolumeGroup):
|
|||||||
|
|
||||||
class TestVolumeGroupSet(TestVolumeGroup):
|
class TestVolumeGroupSet(TestVolumeGroup):
|
||||||
|
|
||||||
fake_volume_group = \
|
fake_volume_group = volume_fakes.create_one_volume_group()
|
||||||
volume_fakes.FakeVolumeGroup.create_one_volume_group()
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -368,8 +365,7 @@ class TestVolumeGroupSet(TestVolumeGroup):
|
|||||||
|
|
||||||
class TestVolumeGroupList(TestVolumeGroup):
|
class TestVolumeGroupList(TestVolumeGroup):
|
||||||
|
|
||||||
fake_volume_groups = \
|
fake_volume_groups = volume_fakes.create_volume_groups()
|
||||||
volume_fakes.FakeVolumeGroup.create_volume_groups()
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -436,8 +432,7 @@ class TestVolumeGroupList(TestVolumeGroup):
|
|||||||
|
|
||||||
class TestVolumeGroupFailover(TestVolumeGroup):
|
class TestVolumeGroupFailover(TestVolumeGroup):
|
||||||
|
|
||||||
fake_volume_group = \
|
fake_volume_group = volume_fakes.create_one_volume_group()
|
||||||
volume_fakes.FakeVolumeGroup.create_one_volume_group()
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
@ -32,9 +32,9 @@ class TestVolumeGroupSnapshot(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestVolumeGroupSnapshotCreate(TestVolumeGroupSnapshot):
|
class TestVolumeGroupSnapshotCreate(TestVolumeGroupSnapshot):
|
||||||
|
|
||||||
fake_volume_group = volume_fakes.FakeVolumeGroup.create_one_volume_group()
|
fake_volume_group = volume_fakes.create_one_volume_group()
|
||||||
fake_volume_group_snapshot = \
|
fake_volume_group_snapshot = \
|
||||||
volume_fakes.FakeVolumeGroupSnapshot.create_one_volume_group_snapshot()
|
volume_fakes.create_one_volume_group_snapshot()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -141,7 +141,7 @@ class TestVolumeGroupSnapshotCreate(TestVolumeGroupSnapshot):
|
|||||||
class TestVolumeGroupSnapshotDelete(TestVolumeGroupSnapshot):
|
class TestVolumeGroupSnapshotDelete(TestVolumeGroupSnapshot):
|
||||||
|
|
||||||
fake_volume_group_snapshot = \
|
fake_volume_group_snapshot = \
|
||||||
volume_fakes.FakeVolumeGroupSnapshot.create_one_volume_group_snapshot()
|
volume_fakes.create_one_volume_group_snapshot()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -195,8 +195,7 @@ class TestVolumeGroupSnapshotDelete(TestVolumeGroupSnapshot):
|
|||||||
|
|
||||||
class TestVolumeGroupSnapshotList(TestVolumeGroupSnapshot):
|
class TestVolumeGroupSnapshotList(TestVolumeGroupSnapshot):
|
||||||
|
|
||||||
fake_volume_group_snapshots = \
|
fake_volume_group_snapshots = volume_fakes.create_volume_group_snapshots()
|
||||||
volume_fakes.FakeVolumeGroupSnapshot.create_volume_group_snapshots()
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
|
@ -34,8 +34,7 @@ class TestVolumeGroupTypeCreate(TestVolumeGroupType):
|
|||||||
|
|
||||||
maxDiff = 2000
|
maxDiff = 2000
|
||||||
|
|
||||||
fake_volume_group_type = \
|
fake_volume_group_type = volume_fakes.create_one_volume_group_type()
|
||||||
volume_fakes.FakeVolumeGroupType.create_one_volume_group_type()
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -133,8 +132,7 @@ class TestVolumeGroupTypeCreate(TestVolumeGroupType):
|
|||||||
|
|
||||||
class TestVolumeGroupTypeDelete(TestVolumeGroupType):
|
class TestVolumeGroupTypeDelete(TestVolumeGroupType):
|
||||||
|
|
||||||
fake_volume_group_type = \
|
fake_volume_group_type = volume_fakes.create_one_volume_group_type()
|
||||||
volume_fakes.FakeVolumeGroupType.create_one_volume_group_type()
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@ -187,13 +185,13 @@ class TestVolumeGroupTypeDelete(TestVolumeGroupType):
|
|||||||
|
|
||||||
class TestVolumeGroupTypeSet(TestVolumeGroupType):
|
class TestVolumeGroupTypeSet(TestVolumeGroupType):
|
||||||
|
|
||||||
fake_volume_group_type = \
|
fake_volume_group_type = volume_fakes.create_one_volume_group_type(
|
||||||
volume_fakes.FakeVolumeGroupType.create_one_volume_group_type(
|
|
||||||
methods={
|
methods={
|
||||||
'get_keys': {'foo': 'bar'},
|
'get_keys': {'foo': 'bar'},
|
||||||
'set_keys': None,
|
'set_keys': None,
|
||||||
'unset_keys': None,
|
'unset_keys': None,
|
||||||
})
|
},
|
||||||
|
)
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -316,9 +314,9 @@ class TestVolumeGroupTypeSet(TestVolumeGroupType):
|
|||||||
|
|
||||||
class TestVolumeGroupTypeUnset(TestVolumeGroupType):
|
class TestVolumeGroupTypeUnset(TestVolumeGroupType):
|
||||||
|
|
||||||
fake_volume_group_type = \
|
fake_volume_group_type = volume_fakes.create_one_volume_group_type(
|
||||||
volume_fakes.FakeVolumeGroupType.create_one_volume_group_type(
|
methods={'unset_keys': None},
|
||||||
methods={'unset_keys': None})
|
)
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -393,8 +391,7 @@ class TestVolumeGroupTypeUnset(TestVolumeGroupType):
|
|||||||
|
|
||||||
class TestVolumeGroupTypeList(TestVolumeGroupType):
|
class TestVolumeGroupTypeList(TestVolumeGroupType):
|
||||||
|
|
||||||
fake_volume_group_types = \
|
fake_volume_group_types = volume_fakes.create_volume_group_types()
|
||||||
volume_fakes.FakeVolumeGroupType.create_volume_group_types()
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
|
@ -34,15 +34,14 @@ class TestVolumeMessage(volume_fakes.TestVolume):
|
|||||||
|
|
||||||
class TestVolumeMessageDelete(TestVolumeMessage):
|
class TestVolumeMessageDelete(TestVolumeMessage):
|
||||||
|
|
||||||
fake_messages = volume_fakes.FakeVolumeMessage.create_volume_messages(
|
fake_messages = volume_fakes.create_volume_messages(count=2)
|
||||||
count=2)
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.volume_messages_mock.get = \
|
self.volume_messages_mock.get = volume_fakes.get_volume_messages(
|
||||||
volume_fakes.FakeVolumeMessage.get_volume_messages(
|
self.fake_messages,
|
||||||
self.fake_messages)
|
)
|
||||||
self.volume_messages_mock.delete.return_value = None
|
self.volume_messages_mock.delete.return_value = None
|
||||||
|
|
||||||
# Get the command object to mock
|
# Get the command object to mock
|
||||||
@ -139,8 +138,7 @@ class TestVolumeMessageDelete(TestVolumeMessage):
|
|||||||
class TestVolumeMessageList(TestVolumeMessage):
|
class TestVolumeMessageList(TestVolumeMessage):
|
||||||
|
|
||||||
fake_project = identity_fakes.FakeProject.create_one_project()
|
fake_project = identity_fakes.FakeProject.create_one_project()
|
||||||
fake_messages = volume_fakes.FakeVolumeMessage.create_volume_messages(
|
fake_messages = volume_fakes.create_volume_messages(count=3)
|
||||||
count=3)
|
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'ID',
|
'ID',
|
||||||
@ -253,7 +251,7 @@ class TestVolumeMessageList(TestVolumeMessage):
|
|||||||
|
|
||||||
class TestVolumeMessageShow(TestVolumeMessage):
|
class TestVolumeMessageShow(TestVolumeMessage):
|
||||||
|
|
||||||
fake_message = volume_fakes.FakeVolumeMessage.create_one_volume_message()
|
fake_message = volume_fakes.create_one_volume_message()
|
||||||
|
|
||||||
columns = (
|
columns = (
|
||||||
'created_at',
|
'created_at',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user