Skip to content

Commit 2402dcf

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Refactor TestVolumeShow with FakeVolume"
2 parents 478b776 + 0fa2e8d commit 2402dcf

3 files changed

Lines changed: 54 additions & 9 deletions

File tree

openstackclient/tests/fakes.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@ def __repr__(self):
189189
def keys(self):
190190
return self._info.keys()
191191

192+
@property
193+
def info(self):
194+
return self._info
195+
192196

193197
class FakeResponse(requests.Response):
194198

openstackclient/tests/volume/v2/fakes.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,44 @@ def get_volumes(volumes=None, count=2):
451451

452452
return mock.MagicMock(side_effect=volumes)
453453

454+
@staticmethod
455+
def get_volume_columns(volume=None):
456+
"""Get the volume columns from a faked volume object.
457+
458+
:param volume:
459+
A FakeResource objects faking volume
460+
:return
461+
A tuple which may include the following keys:
462+
('id', 'name', 'description', 'status', 'size', 'volume_type',
463+
'metadata', 'snapshot', 'availability_zone', 'attachments')
464+
"""
465+
if volume is not None:
466+
return tuple(k for k in sorted(volume.keys()))
467+
return tuple([])
468+
469+
@staticmethod
470+
def get_volume_data(volume=None):
471+
"""Get the volume data from a faked volume object.
472+
473+
:param volume:
474+
A FakeResource objects faking volume
475+
:return
476+
A tuple which may include the following values:
477+
('ce26708d', 'fake_volume', 'fake description', 'available',
478+
20, 'fake_lvmdriver-1', "Alpha='a', Beta='b', Gamma='g'",
479+
1, 'nova', [{'device': '/dev/ice', 'server_id': '1233'}])
480+
"""
481+
data_list = []
482+
if volume is not None:
483+
for x in sorted(volume.keys()):
484+
if x == 'tags':
485+
# The 'tags' should be format_list
486+
data_list.append(
487+
common_utils.format_list(volume.info.get(x)))
488+
else:
489+
data_list.append(volume.info.get(x))
490+
return tuple(data_list)
491+
454492

455493
class FakeAvailabilityZone(object):
456494
"""Fake one or more volume availability zones (AZs)."""

openstackclient/tests/volume/v2/test_volume.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -772,27 +772,30 @@ class TestVolumeShow(TestVolume):
772772
def setUp(self):
773773
super(TestVolumeShow, self).setUp()
774774

775-
self.volumes_mock.get.return_value = fakes.FakeResource(
776-
None,
777-
copy.deepcopy(volume_fakes.VOLUME),
778-
loaded=True)
775+
self._volume = volume_fakes.FakeVolume.create_one_volume()
776+
self.volumes_mock.get.return_value = self._volume
779777
# Get the command object to test
780778
self.cmd = volume.ShowVolume(self.app, None)
781779

782780
def test_volume_show(self):
783781
arglist = [
784-
volume_fakes.volume_id
782+
self._volume.id
785783
]
786784
verifylist = [
787-
("volume", volume_fakes.volume_id)
785+
("volume", self._volume.id)
788786
]
789787
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
790788

791789
columns, data = self.cmd.take_action(parsed_args)
792-
self.volumes_mock.get.assert_called_with(volume_fakes.volume_id)
790+
self.volumes_mock.get.assert_called_with(self._volume.id)
791+
792+
self.assertEqual(
793+
volume_fakes.FakeVolume.get_volume_columns(self._volume),
794+
columns)
793795

794-
self.assertEqual(volume_fakes.VOLUME_columns, columns)
795-
self.assertEqual(volume_fakes.VOLUME_data, data)
796+
self.assertEqual(
797+
volume_fakes.FakeVolume.get_volume_data(self._volume),
798+
data)
796799

797800

798801
class TestVolumeSet(TestVolume):

0 commit comments

Comments
 (0)