@@ -829,6 +829,11 @@ def setUp(self):
829829
830830 self .images_mock .get .return_value = self .model (** image_fakes .IMAGE )
831831 self .images_mock .update .return_value = self .model (** image_fakes .IMAGE )
832+
833+ self .app .client_manager .auth_ref = mock .Mock (
834+ project_id = self .project .id ,
835+ )
836+
832837 # Get the command object to test
833838 self .cmd = image .SetImage (self .app , None )
834839
@@ -847,32 +852,94 @@ def test_image_set_no_options(self):
847852
848853 self .image_members_mock .update .assert_not_called ()
849854
850- def test_image_set_membership_option (self ):
855+ def test_image_set_membership_option_accept (self ):
856+ membership = image_fakes .FakeImage .create_one_image_member (
857+ attrs = {'image_id' : image_fakes .image_id ,
858+ 'member_id' : self .project .id }
859+ )
860+ self .image_members_mock .update .return_value = membership
861+
862+ arglist = [
863+ '--accept' ,
864+ image_fakes .image_id ,
865+ ]
866+ verifylist = [
867+ ('accept' , True ),
868+ ('reject' , False ),
869+ ('pending' , False ),
870+ ('image' , image_fakes .image_id )
871+ ]
872+
873+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
874+ self .cmd .take_action (parsed_args )
875+
876+ self .image_members_mock .update .assert_called_once_with (
877+ image_fakes .image_id ,
878+ self .app .client_manager .auth_ref .project_id ,
879+ 'accepted' ,
880+ )
881+
882+ # Assert that the 'update image" route is also called, in addition to
883+ # the 'update membership' route.
884+ self .images_mock .update .assert_called_with (image_fakes .image_id )
885+
886+ def test_image_set_membership_option_reject (self ):
887+ membership = image_fakes .FakeImage .create_one_image_member (
888+ attrs = {'image_id' : image_fakes .image_id ,
889+ 'member_id' : self .project .id }
890+ )
891+ self .image_members_mock .update .return_value = membership
892+
893+ arglist = [
894+ '--reject' ,
895+ image_fakes .image_id ,
896+ ]
897+ verifylist = [
898+ ('accept' , False ),
899+ ('reject' , True ),
900+ ('pending' , False ),
901+ ('image' , image_fakes .image_id )
902+ ]
903+
904+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
905+ self .cmd .take_action (parsed_args )
906+
907+ self .image_members_mock .update .assert_called_once_with (
908+ image_fakes .image_id ,
909+ self .app .client_manager .auth_ref .project_id ,
910+ 'rejected' ,
911+ )
912+
913+ # Assert that the 'update image" route is also called, in addition to
914+ # the 'update membership' route.
915+ self .images_mock .update .assert_called_with (image_fakes .image_id )
916+
917+ def test_image_set_membership_option_pending (self ):
851918 membership = image_fakes .FakeImage .create_one_image_member (
852919 attrs = {'image_id' : image_fakes .image_id ,
853920 'member_id' : self .project .id }
854921 )
855922 self .image_members_mock .update .return_value = membership
856923
857- for status in ( 'accept' , 'reject' , 'pending' ):
858- arglist = [
859- '--%s' % status ,
860- image_fakes . image_id ,
861- ]
862- verifylist = [
863- ( status , True ),
864- ( 'image ' , image_fakes . image_id )
865- ]
866-
867- parsed_args = self . check_parser ( self . cmd , arglist , verifylist )
868- self .cmd . take_action ( parsed_args )
869-
870- self . image_members_mock . update . assert_called_once_with (
871- image_fakes . image_id ,
872- self . app . client_manager . auth_ref . project_id ,
873- status if status == 'pending' else status + 'ed'
874- )
875- self . image_members_mock . update . reset_mock ( )
924+ arglist = [
925+ '--pending' ,
926+ image_fakes . image_id ,
927+ ]
928+ verifylist = [
929+ ( 'accept' , False ),
930+ ( 'reject' , False ),
931+ ( 'pending ' , True ),
932+ ( 'image' , image_fakes . image_id )
933+ ]
934+
935+ parsed_args = self .check_parser ( self . cmd , arglist , verifylist )
936+ self . cmd . take_action ( parsed_args )
937+
938+ self . image_members_mock . update . assert_called_once_with (
939+ image_fakes . image_id ,
940+ self . app . client_manager . auth_ref . project_id ,
941+ 'pending' ,
942+ )
876943
877944 # Assert that the 'update image" route is also called, in addition to
878945 # the 'update membership' route.
0 commit comments