Merge "Refactor TestVolumeShow with FakeVolume"
This commit is contained in:
commit
2402dcfc35
@ -189,6 +189,10 @@ class FakeResource(object):
|
||||
def keys(self):
|
||||
return self._info.keys()
|
||||
|
||||
@property
|
||||
def info(self):
|
||||
return self._info
|
||||
|
||||
|
||||
class FakeResponse(requests.Response):
|
||||
|
||||
|
@ -451,6 +451,44 @@ class FakeVolume(object):
|
||||
|
||||
return mock.MagicMock(side_effect=volumes)
|
||||
|
||||
@staticmethod
|
||||
def get_volume_columns(volume=None):
|
||||
"""Get the volume columns from a faked volume object.
|
||||
|
||||
:param volume:
|
||||
A FakeResource objects faking volume
|
||||
:return
|
||||
A tuple which may include the following keys:
|
||||
('id', 'name', 'description', 'status', 'size', 'volume_type',
|
||||
'metadata', 'snapshot', 'availability_zone', 'attachments')
|
||||
"""
|
||||
if volume is not None:
|
||||
return tuple(k for k in sorted(volume.keys()))
|
||||
return tuple([])
|
||||
|
||||
@staticmethod
|
||||
def get_volume_data(volume=None):
|
||||
"""Get the volume data from a faked volume object.
|
||||
|
||||
:param volume:
|
||||
A FakeResource objects faking volume
|
||||
:return
|
||||
A tuple which may include the following values:
|
||||
('ce26708d', 'fake_volume', 'fake description', 'available',
|
||||
20, 'fake_lvmdriver-1', "Alpha='a', Beta='b', Gamma='g'",
|
||||
1, 'nova', [{'device': '/dev/ice', 'server_id': '1233'}])
|
||||
"""
|
||||
data_list = []
|
||||
if volume is not None:
|
||||
for x in sorted(volume.keys()):
|
||||
if x == 'tags':
|
||||
# The 'tags' should be format_list
|
||||
data_list.append(
|
||||
common_utils.format_list(volume.info.get(x)))
|
||||
else:
|
||||
data_list.append(volume.info.get(x))
|
||||
return tuple(data_list)
|
||||
|
||||
|
||||
class FakeAvailabilityZone(object):
|
||||
"""Fake one or more volume availability zones (AZs)."""
|
||||
|
@ -772,27 +772,30 @@ class TestVolumeShow(TestVolume):
|
||||
def setUp(self):
|
||||
super(TestVolumeShow, self).setUp()
|
||||
|
||||
self.volumes_mock.get.return_value = fakes.FakeResource(
|
||||
None,
|
||||
copy.deepcopy(volume_fakes.VOLUME),
|
||||
loaded=True)
|
||||
self._volume = volume_fakes.FakeVolume.create_one_volume()
|
||||
self.volumes_mock.get.return_value = self._volume
|
||||
# Get the command object to test
|
||||
self.cmd = volume.ShowVolume(self.app, None)
|
||||
|
||||
def test_volume_show(self):
|
||||
arglist = [
|
||||
volume_fakes.volume_id
|
||||
self._volume.id
|
||||
]
|
||||
verifylist = [
|
||||
("volume", volume_fakes.volume_id)
|
||||
("volume", self._volume.id)
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
self.volumes_mock.get.assert_called_with(volume_fakes.volume_id)
|
||||
self.volumes_mock.get.assert_called_with(self._volume.id)
|
||||
|
||||
self.assertEqual(volume_fakes.VOLUME_columns, columns)
|
||||
self.assertEqual(volume_fakes.VOLUME_data, data)
|
||||
self.assertEqual(
|
||||
volume_fakes.FakeVolume.get_volume_columns(self._volume),
|
||||
columns)
|
||||
|
||||
self.assertEqual(
|
||||
volume_fakes.FakeVolume.get_volume_data(self._volume),
|
||||
data)
|
||||
|
||||
|
||||
class TestVolumeSet(TestVolume):
|
||||
|
Loading…
x
Reference in New Issue
Block a user