Add tests for multiattach check in cinder.objects

There doesn't exists a test for multiattach check in the
cinder.tests.unit.objects.test_volume_types.TestVolumeType class.
This patch adds the respective tests.

Change-Id: Ic6c19414738367aa794522aaa0c1a963abcac723
This commit is contained in:
whoami-rajat 2018-09-28 01:14:14 +05:30
parent 7f27679466
commit b735c44c24
4 changed files with 23 additions and 0 deletions

View File

@ -567,6 +567,9 @@ class Volume(cleanable.CinderCleanableObject, base.CinderObject,
def is_replicated(self):
return self.volume_type and self.volume_type.is_replicated()
def is_multiattach(self):
return self.volume_type and self.volume_type.is_multiattach()
@base.CinderObjectRegistry.register
class VolumeList(base.ObjectListBase, base.CinderObject):

View File

@ -165,6 +165,9 @@ class VolumeType(base.CinderPersistentObject, base.CinderObject,
def is_replicated(self):
return utils.is_replicated_spec(self.extra_specs)
def is_multiattach(self):
return utils.is_multiattach_spec(self.extra_specs)
@base.CinderObjectRegistry.register
class VolumeTypeList(base.ObjectListBase, base.CinderObject):

View File

@ -227,6 +227,18 @@ class TestVolumeType(test_objects.BaseObjectsTestCase):
self.context, extra_specs={'replication_enabled': not_enabled})
self.assertFalse(volume_type.is_replicated())
@ddt.data('<is> False', '<is> false', '<is> f')
def test_is_multiattach_specs_false(self, false):
volume_type = fake_volume.fake_volume_type_obj(
self.context, extra_specs={'multiattach': false})
self.assertFalse(volume_type.is_multiattach())
@ddt.data('<is> True', '<is> True')
def test_is_multiattach_specs_true(self, true):
volume_type = fake_volume.fake_volume_type_obj(
self.context, extra_specs={'multiattach': true})
self.assertTrue(volume_type.is_multiattach())
class TestVolumeTypeList(test_objects.BaseObjectsTestCase):
@mock.patch('cinder.volume.volume_types.get_all_types')

View File

@ -966,6 +966,11 @@ def is_replicated_spec(extra_specs):
is_replicated_str(extra_specs.get('replication_enabled')))
def is_multiattach_spec(extra_specs):
return (extra_specs and
is_replicated_str(extra_specs.get('multiattach')))
def group_get_by_id(group_id):
ctxt = context.get_admin_context()
group = db.group_get(ctxt, group_id)