Skip to content

Commit 4d832e7

Browse files
author
David Moreau Simard
committed
Add tests for 'list' and 'show' for volume qos v1
Change-Id: I1b4d998f3ec1bd5cb8dd4c9e0d04fd3b3049e9d7
1 parent 1051a46 commit 4d832e7

2 files changed

Lines changed: 111 additions & 0 deletions

File tree

‎openstackclient/tests/volume/v1/fakes.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@
9595
'foo': 'bar',
9696
'iops': '9001'
9797
}
98+
qos_association = {
99+
'association_type': 'volume_type',
100+
'name': type_name,
101+
'id': type_id
102+
}
98103

99104
QOS = {
100105
'id': qos_id,
@@ -115,6 +120,14 @@
115120
'specs': qos_specs
116121
}
117122

123+
QOS_WITH_ASSOCIATIONS = {
124+
'id': qos_id,
125+
'consumer': qos_consumer,
126+
'name': qos_name,
127+
'specs': qos_specs,
128+
'associations': [qos_association]
129+
}
130+
118131

119132
class FakeImagev1Client(object):
120133
def __init__(self, **kwargs):

‎openstackclient/tests/volume/v1/test_qos_specs.py‎

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import copy
1717

18+
from openstackclient.common import utils
1819
from openstackclient.tests import fakes
1920
from openstackclient.tests.volume.v1 import fakes as volume_fakes
2021
from openstackclient.volume.v1 import qos_specs
@@ -285,6 +286,52 @@ def test_qos_disassociate_with_all_volume_types(self):
285286
self.qos_mock.disassociate_all.assert_called_with(volume_fakes.qos_id)
286287

287288

289+
class TestQosList(TestQos):
290+
def setUp(self):
291+
super(TestQosList, self).setUp()
292+
293+
self.qos_mock.get.return_value = fakes.FakeResource(
294+
None,
295+
copy.deepcopy(volume_fakes.QOS_WITH_ASSOCIATIONS),
296+
loaded=True,
297+
)
298+
self.qos_mock.list.return_value = [self.qos_mock.get.return_value]
299+
self.qos_mock.get_associations.return_value = [fakes.FakeResource(
300+
None,
301+
copy.deepcopy(volume_fakes.qos_association),
302+
loaded=True,
303+
)]
304+
305+
# Get the command object to test
306+
self.cmd = qos_specs.ListQos(self.app, None)
307+
308+
def test_qos_list(self):
309+
arglist = []
310+
verifylist = []
311+
312+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
313+
314+
columns, data = self.cmd.take_action(parsed_args)
315+
self.qos_mock.list.assert_called()
316+
317+
collist = (
318+
'ID',
319+
'Name',
320+
'Consumer',
321+
'Associations',
322+
'Specs',
323+
)
324+
self.assertEqual(collist, columns)
325+
datalist = ((
326+
volume_fakes.qos_id,
327+
volume_fakes.qos_name,
328+
volume_fakes.qos_consumer,
329+
volume_fakes.type_name,
330+
utils.format_dict(volume_fakes.qos_specs),
331+
), )
332+
self.assertEqual(datalist, tuple(data))
333+
334+
288335
class TestQosSet(TestQos):
289336
def setUp(self):
290337
super(TestQosSet, self).setUp()
@@ -316,6 +363,57 @@ def test_qos_set_with_properties_with_id(self):
316363
)
317364

318365

366+
class TestQosShow(TestQos):
367+
def setUp(self):
368+
super(TestQosShow, self).setUp()
369+
370+
self.qos_mock.get.return_value = fakes.FakeResource(
371+
None,
372+
copy.deepcopy(volume_fakes.QOS_WITH_ASSOCIATIONS),
373+
loaded=True,
374+
)
375+
self.qos_mock.get_associations.return_value = [fakes.FakeResource(
376+
None,
377+
copy.deepcopy(volume_fakes.qos_association),
378+
loaded=True,
379+
)]
380+
381+
# Get the command object to test
382+
self.cmd = qos_specs.ShowQos(self.app, None)
383+
384+
def test_qos_show(self):
385+
arglist = [
386+
volume_fakes.qos_id
387+
]
388+
verifylist = [
389+
('qos_specs', volume_fakes.qos_id)
390+
]
391+
392+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
393+
394+
columns, data = self.cmd.take_action(parsed_args)
395+
self.qos_mock.get.assert_called_with(
396+
volume_fakes.qos_id
397+
)
398+
399+
collist = (
400+
'associations',
401+
'consumer',
402+
'id',
403+
'name',
404+
'specs'
405+
)
406+
self.assertEqual(collist, columns)
407+
datalist = (
408+
volume_fakes.type_name,
409+
volume_fakes.qos_consumer,
410+
volume_fakes.qos_id,
411+
volume_fakes.qos_name,
412+
utils.format_dict(volume_fakes.qos_specs),
413+
)
414+
self.assertEqual(datalist, tuple(data))
415+
416+
319417
class TestQosUnset(TestQos):
320418
def setUp(self):
321419
super(TestQosUnset, self).setUp()

0 commit comments

Comments
 (0)