@@ -780,6 +780,76 @@ def test_server_pause_multi_servers(self):
780780 self .run_method_with_servers ('pause' , 3 )
781781
782782
783+ class TestServerRebuild (TestServer ):
784+
785+ def setUp (self ):
786+ super (TestServerRebuild , self ).setUp ()
787+
788+ # Return value for utils.find_resource for image
789+ self .image = image_fakes .FakeImage .create_one_image ()
790+ self .cimages_mock .get .return_value = self .image
791+
792+ # Fake the rebuilt new server.
793+ new_server = compute_fakes .FakeServer .create_one_server ()
794+
795+ # Fake the server to be rebuilt. The IDs of them should be the same.
796+ attrs = {
797+ 'id' : new_server .id ,
798+ 'image' : {
799+ 'id' : self .image .id
800+ },
801+ 'networks' : {},
802+ 'adminPass' : 'passw0rd' ,
803+ }
804+ methods = {
805+ 'rebuild' : new_server ,
806+ }
807+ self .server = compute_fakes .FakeServer .create_one_server (
808+ attrs = attrs ,
809+ methods = methods
810+ )
811+
812+ # Return value for utils.find_resource for server.
813+ self .servers_mock .get .return_value = self .server
814+
815+ self .cmd = server .RebuildServer (self .app , None )
816+
817+ def test_rebuild_with_current_image (self ):
818+ arglist = [
819+ self .server .id ,
820+ ]
821+ verifylist = [
822+ ('server' , self .server .id )
823+ ]
824+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
825+
826+ # Get the command object to test.
827+ self .cmd .take_action (parsed_args )
828+
829+ self .servers_mock .get .assert_called_with (self .server .id )
830+ self .cimages_mock .get .assert_called_with (self .image .id )
831+ self .server .rebuild .assert_called_with (self .image , None )
832+
833+ def test_rebuild_with_current_image_and_password (self ):
834+ password = 'password-xxx'
835+ arglist = [
836+ self .server .id ,
837+ '--password' , password
838+ ]
839+ verifylist = [
840+ ('server' , self .server .id ),
841+ ('password' , password )
842+ ]
843+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
844+
845+ # Get the command object to test
846+ self .cmd .take_action (parsed_args )
847+
848+ self .servers_mock .get .assert_called_with (self .server .id )
849+ self .cimages_mock .get .assert_called_with (self .image .id )
850+ self .server .rebuild .assert_called_with (self .image , password )
851+
852+
783853class TestServerResize (TestServer ):
784854
785855 def setUp (self ):
0 commit comments