Merge "Refactor TestVolumeShow with FakeVolume"
This commit is contained in:
commit
2402dcfc35
@ -189,6 +189,10 @@ class FakeResource(object):
|
|||||||
def keys(self):
|
def keys(self):
|
||||||
return self._info.keys()
|
return self._info.keys()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def info(self):
|
||||||
|
return self._info
|
||||||
|
|
||||||
|
|
||||||
class FakeResponse(requests.Response):
|
class FakeResponse(requests.Response):
|
||||||
|
|
||||||
|
@ -451,6 +451,44 @@ class FakeVolume(object):
|
|||||||
|
|
||||||
return mock.MagicMock(side_effect=volumes)
|
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):
|
class FakeAvailabilityZone(object):
|
||||||
"""Fake one or more volume availability zones (AZs)."""
|
"""Fake one or more volume availability zones (AZs)."""
|
||||||
|
@ -772,27 +772,30 @@ class TestVolumeShow(TestVolume):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestVolumeShow, self).setUp()
|
super(TestVolumeShow, self).setUp()
|
||||||
|
|
||||||
self.volumes_mock.get.return_value = fakes.FakeResource(
|
self._volume = volume_fakes.FakeVolume.create_one_volume()
|
||||||
None,
|
self.volumes_mock.get.return_value = self._volume
|
||||||
copy.deepcopy(volume_fakes.VOLUME),
|
|
||||||
loaded=True)
|
|
||||||
# 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)
|
||||||
|
|
||||||
def test_volume_show(self):
|
def test_volume_show(self):
|
||||||
arglist = [
|
arglist = [
|
||||||
volume_fakes.volume_id
|
self._volume.id
|
||||||
]
|
]
|
||||||
verifylist = [
|
verifylist = [
|
||||||
("volume", volume_fakes.volume_id)
|
("volume", self._volume.id)
|
||||||
]
|
]
|
||||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
columns, data = self.cmd.take_action(parsed_args)
|
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(
|
||||||
self.assertEqual(volume_fakes.VOLUME_data, data)
|
volume_fakes.FakeVolume.get_volume_columns(self._volume),
|
||||||
|
columns)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
volume_fakes.FakeVolume.get_volume_data(self._volume),
|
||||||
|
data)
|
||||||
|
|
||||||
|
|
||||||
class TestVolumeSet(TestVolume):
|
class TestVolumeSet(TestVolume):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user