1313# under the License.
1414#
1515
16+ import copy
1617import mock
1718from mock import call
1819
@@ -309,13 +310,30 @@ def test_qos_disassociate_with_all_volume_types(self):
309310
310311class TestQosList (TestQos ):
311312
312- qos_spec = volume_fakes .FakeQos .create_one_qos ( )
313+ qos_specs = volume_fakes .FakeQos .create_qoses ( count = 2 )
313314 qos_association = volume_fakes .FakeQos .create_one_qos_association ()
314315
316+ columns = (
317+ 'ID' ,
318+ 'Name' ,
319+ 'Consumer' ,
320+ 'Associations' ,
321+ 'Properties' ,
322+ )
323+ data = []
324+ for q in qos_specs :
325+ data .append ((
326+ q .id ,
327+ q .name ,
328+ q .consumer ,
329+ qos_association .name ,
330+ utils .format_dict (q .specs ),
331+ ))
332+
315333 def setUp (self ):
316334 super (TestQosList , self ).setUp ()
317335
318- self .qos_mock .list .return_value = [ self .qos_spec ]
336+ self .qos_mock .list .return_value = self .qos_specs
319337 self .qos_mock .get_associations .return_value = [self .qos_association ]
320338
321339 # Get the command object to test
@@ -330,22 +348,35 @@ def test_qos_list(self):
330348 columns , data = self .cmd .take_action (parsed_args )
331349 self .qos_mock .list .assert_called_with ()
332350
333- collist = (
334- 'ID' ,
335- 'Name' ,
336- 'Consumer' ,
337- 'Associations' ,
338- 'Properties' ,
351+ self .assertEqual (self .columns , columns )
352+ self .assertEqual (self .data , list (data ))
353+
354+ def test_qos_list_no_association (self ):
355+ self .qos_mock .reset_mock ()
356+ self .qos_mock .get_associations .side_effect = [
357+ [self .qos_association ],
358+ exceptions .NotFound ("NotFound" ),
359+ ]
360+
361+ arglist = []
362+ verifylist = []
363+
364+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
365+
366+ columns , data = self .cmd .take_action (parsed_args )
367+ self .qos_mock .list .assert_called_with ()
368+
369+ self .assertEqual (self .columns , columns )
370+
371+ ex_data = copy .deepcopy (self .data )
372+ ex_data [1 ] = (
373+ self .qos_specs [1 ].id ,
374+ self .qos_specs [1 ].name ,
375+ self .qos_specs [1 ].consumer ,
376+ None ,
377+ utils .format_dict (self .qos_specs [1 ].specs ),
339378 )
340- self .assertEqual (collist , columns )
341- datalist = ((
342- self .qos_spec .id ,
343- self .qos_spec .name ,
344- self .qos_spec .consumer ,
345- self .qos_association .name ,
346- utils .format_dict (self .qos_spec .specs ),
347- ), )
348- self .assertEqual (datalist , tuple (data ))
379+ self .assertEqual (ex_data , list (data ))
349380
350381
351382class TestQosSet (TestQos ):
0 commit comments