@@ -523,6 +523,7 @@ def test_flavor_list_no_options(self):
523523 self .sdk_client .flavors .assert_called_with (
524524 ** kwargs
525525 )
526+ self .sdk_client .fetch_flavor_extra_specs .assert_not_called ()
526527
527528 self .assertEqual (self .columns , columns )
528529 self .assertEqual (self .data , tuple (data ))
@@ -550,6 +551,7 @@ def test_flavor_list_all_flavors(self):
550551 self .sdk_client .flavors .assert_called_with (
551552 ** kwargs
552553 )
554+ self .sdk_client .fetch_flavor_extra_specs .assert_not_called ()
553555
554556 self .assertEqual (self .columns , columns )
555557 self .assertEqual (self .data , tuple (data ))
@@ -577,6 +579,7 @@ def test_flavor_list_private_flavors(self):
577579 self .sdk_client .flavors .assert_called_with (
578580 ** kwargs
579581 )
582+ self .sdk_client .fetch_flavor_extra_specs .assert_not_called ()
580583
581584 self .assertEqual (self .columns , columns )
582585 self .assertEqual (self .data , tuple (data ))
@@ -604,6 +607,7 @@ def test_flavor_list_public_flavors(self):
604607 self .sdk_client .flavors .assert_called_with (
605608 ** kwargs
606609 )
610+ self .sdk_client .fetch_flavor_extra_specs .assert_not_called ()
607611
608612 self .assertEqual (self .columns , columns )
609613 self .assertEqual (self .data , tuple (data ))
@@ -631,6 +635,58 @@ def test_flavor_list_long(self):
631635 self .sdk_client .flavors .assert_called_with (
632636 ** kwargs
633637 )
638+ self .sdk_client .fetch_flavor_extra_specs .assert_not_called ()
639+
640+ self .assertEqual (self .columns_long , columns )
641+ self .assertCountEqual (self .data_long , tuple (data ))
642+
643+ def test_flavor_list_long_no_extra_specs (self ):
644+ # use flavor with no extra specs for this test
645+ flavor = compute_fakes .FakeFlavor .create_one_flavor (
646+ attrs = {"extra_specs" : {}})
647+ self .data = ((
648+ flavor .id ,
649+ flavor .name ,
650+ flavor .ram ,
651+ flavor .disk ,
652+ flavor .ephemeral ,
653+ flavor .vcpus ,
654+ flavor .is_public ,
655+ ),)
656+ self .data_long = (self .data [0 ] + (
657+ flavor .swap ,
658+ flavor .rxtx_factor ,
659+ format_columns .DictColumn (flavor .extra_specs )
660+ ),)
661+ self .api_mock .side_effect = [[flavor ], [], ]
662+
663+ self .sdk_client .flavors = self .api_mock
664+ self .sdk_client .fetch_flavor_extra_specs = mock .Mock (return_value = None )
665+
666+ arglist = [
667+ '--long' ,
668+ ]
669+ verifylist = [
670+ ('long' , True ),
671+ ]
672+
673+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
674+
675+ # In base command class Lister in cliff, abstract method take_action()
676+ # returns a tuple containing the column names and an iterable
677+ # containing the data to be listed.
678+ columns , data = self .cmd .take_action (parsed_args )
679+
680+ # Set expected values
681+ kwargs = {
682+ 'is_public' : True ,
683+ }
684+
685+ self .sdk_client .flavors .assert_called_with (
686+ ** kwargs
687+ )
688+ self .sdk_client .fetch_flavor_extra_specs .assert_called_once_with (
689+ flavor )
634690
635691 self .assertEqual (self .columns_long , columns )
636692 self .assertCountEqual (self .data_long , tuple (data ))
@@ -662,6 +718,7 @@ def test_flavor_list_min_disk_min_ram(self):
662718 self .sdk_client .flavors .assert_called_with (
663719 ** kwargs
664720 )
721+ self .sdk_client .fetch_flavor_extra_specs .assert_not_called ()
665722
666723 self .assertEqual (self .columns , columns )
667724 self .assertEqual (tuple (self .data ), tuple (data ))
0 commit comments