@@ -616,16 +616,23 @@ def test_flavor_show(self):
616616class TestFlavorUnset (TestFlavor ):
617617
618618 # Return value of self.flavors_mock.find().
619- flavor = compute_fakes .FakeFlavor .create_one_flavor ()
619+ flavor = compute_fakes .FakeFlavor .create_one_flavor (
620+ attrs = {'os-flavor-access:is_public' : False })
620621
621622 def setUp (self ):
622623 super (TestFlavorUnset , self ).setUp ()
623624
624625 self .flavors_mock .find .return_value = self .flavor
625626 self .flavors_mock .get .side_effect = exceptions .NotFound (None )
627+ # Return a project
628+ self .projects_mock .get .return_value = fakes .FakeResource (
629+ None ,
630+ copy .deepcopy (identity_fakes .PROJECT ),
631+ loaded = True ,
632+ )
626633 self .cmd = flavor .UnsetFlavor (self .app , None )
627634
628- def test_flavor_unset (self ):
635+ def test_flavor_unset_property (self ):
629636 arglist = [
630637 '--property' , 'property' ,
631638 'baremetal'
@@ -640,3 +647,80 @@ def test_flavor_unset(self):
640647 self .flavors_mock .find .assert_called_with (name = parsed_args .flavor ,
641648 is_public = None )
642649 self .assertIsNone (result )
650+
651+ def test_flavor_unset_project (self ):
652+ arglist = [
653+ '--project' , identity_fakes .project_id ,
654+ self .flavor .id ,
655+ ]
656+ verifylist = [
657+ ('project' , identity_fakes .project_id ),
658+ ('flavor' , self .flavor .id ),
659+ ]
660+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
661+
662+ result = self .cmd .take_action (parsed_args )
663+ self .assertIsNone (result )
664+
665+ self .flavor_access_mock .remove_tenant_access .assert_called_with (
666+ self .flavor .id ,
667+ identity_fakes .project_id ,
668+ )
669+
670+ def test_flavor_unset_no_project (self ):
671+ arglist = [
672+ '--project' , '' ,
673+ self .flavor .id ,
674+ ]
675+ verifylist = [
676+ ('project' , '' ),
677+ ('flavor' , self .flavor .id ),
678+ ]
679+
680+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
681+ self .assertRaises (exceptions .CommandError , self .cmd .take_action ,
682+ parsed_args )
683+
684+ def test_flavor_unset_no_flavor (self ):
685+ arglist = [
686+ '--project' , identity_fakes .project_id ,
687+ ]
688+ verifylist = [
689+ ('project' , identity_fakes .project_id ),
690+ ]
691+
692+ self .assertRaises (tests_utils .ParserException ,
693+ self .check_parser ,
694+ self .cmd ,
695+ arglist ,
696+ verifylist )
697+
698+ def test_flavor_unset_with_unexist_flavor (self ):
699+ self .flavors_mock .get .side_effect = exceptions .NotFound (None )
700+ self .flavors_mock .find .side_effect = exceptions .NotFound (None )
701+
702+ arglist = [
703+ '--project' , identity_fakes .project_id ,
704+ 'unexist_flavor' ,
705+ ]
706+ verifylist = [
707+ ('project' , identity_fakes .project_id ),
708+ ('flavor' , 'unexist_flavor' ),
709+ ]
710+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
711+
712+ self .assertRaises (exceptions .CommandError ,
713+ self .cmd .take_action ,
714+ parsed_args )
715+
716+ def test_flavor_unset_nothing (self ):
717+ arglist = [
718+ self .flavor .id ,
719+ ]
720+ verifylist = [
721+ ('flavor' , self .flavor .id ),
722+ ]
723+
724+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
725+ self .assertRaises (exceptions .CommandError , self .cmd .take_action ,
726+ parsed_args )
0 commit comments