@@ -196,11 +196,7 @@ def run_method_with_servers(self, method_name, server_count):
196196
197197 for s in servers :
198198 method = getattr (s , method_name )
199- if method_name == 'lock' :
200- version = self .app .client_manager .compute .api_version
201- if version >= api_versions .APIVersion ('2.73' ):
202- method .assert_called_with (reason = None )
203- elif method_name == 'unshelve' :
199+ if method_name == 'unshelve' :
204200 version = self .app .client_manager .compute .api_version
205201 if version >= api_versions .APIVersion ('2.91' ):
206202 method .assert_called_with (availability_zone = _sentinel ,
@@ -5440,87 +5436,94 @@ def test_server_list_v269_with_partial_constructs(self):
54405436class TestServerLock (TestServer ):
54415437
54425438 def setUp (self ):
5443- super (TestServerLock , self ).setUp ()
5439+ super ().setUp ()
5440+
5441+ self .server = compute_fakes .FakeServer .create_one_sdk_server ()
5442+
5443+ self .app .client_manager .sdk_connection = mock .Mock ()
5444+ self .app .client_manager .sdk_connection .compute = mock .Mock ()
5445+ self .sdk_client = self .app .client_manager .sdk_connection .compute
5446+
5447+ self .sdk_client .find_server .return_value = self .server
5448+ self .sdk_client .lock_server .return_value = None
54445449
54455450 # Get the command object to test
54465451 self .cmd = server .LockServer (self .app , None )
54475452
5448- # Set methods to be tested.
5449- self .methods = {
5450- 'lock' : None ,
5451- }
5452-
5453- def test_server_lock_one_server (self ):
5454- self .run_method_with_servers ('lock' , 1 )
5453+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5454+ def test_server_lock (self , sm_mock ):
5455+ sm_mock .return_value = False
5456+ self .run_method_with_sdk_servers ('lock_server' , 1 )
54555457
5456- def test_server_lock_multi_servers (self ):
5457- self .run_method_with_servers ('lock' , 3 )
5458+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5459+ def test_server_lock_multi_servers (self , sm_mock ):
5460+ sm_mock .return_value = False
5461+ self .run_method_with_sdk_servers ('lock_server' , 3 )
54585462
5459- def test_server_lock_with_reason (self ):
5460- server = compute_fakes .FakeServer .create_one_server ()
5463+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5464+ def test_server_lock_with_reason (self , sm_mock ):
5465+ sm_mock .return_value = True
54615466 arglist = [
5462- server .id ,
5463- '--reason' , " blah" ,
5467+ self . server .id ,
5468+ '--reason' , ' blah' ,
54645469 ]
54655470 verifylist = [
5466- ('reason ' , "blah" ),
5467- ('server ' , [ server . id ])
5471+ ('server ' , [ self . server . id ] ),
5472+ ('reason ' , 'blah' ),
54685473 ]
54695474 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
5470- ex = self .assertRaises (exceptions .CommandError ,
5471- self .cmd .take_action ,
5472- parsed_args )
5473- self .assertIn (
5474- '--os-compute-api-version 2.73 or greater is required' , str (ex ))
5475-
5476-
5477- class TestServerLockV273 (TestServerLock ):
5478-
5479- def setUp (self ):
5480- super (TestServerLockV273 , self ).setUp ()
5481-
5482- self .server = compute_fakes .FakeServer .create_one_server (
5483- methods = self .methods )
5484-
5485- # This is the return value for utils.find_resource()
5486- self .servers_mock .get .return_value = self .server
5487-
5488- self .app .client_manager .compute .api_version = \
5489- api_versions .APIVersion ('2.73' )
5490-
5491- # Get the command object to test
5492- self .cmd = server .LockServer (self .app , None )
5475+ self .cmd .take_action (parsed_args )
5476+ self .sdk_client .find_server .assert_called_with (
5477+ self .server .id ,
5478+ ignore_missing = False ,
5479+ )
5480+ self .sdk_client .lock_server .assert_called_with (
5481+ self .server .id ,
5482+ locked_reason = "blah" ,
5483+ )
54935484
5494- def test_server_lock_with_reason (self ):
5485+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5486+ def test_server_lock_with_reason_multi_servers (self , sm_mock ):
5487+ sm_mock .return_value = True
5488+ server2 = compute_fakes .FakeServer .create_one_sdk_server ()
54955489 arglist = [
5496- self .server .id ,
5497- '--reason' , "blah" ,
5490+ self .server .id , server2 . id ,
5491+ '--reason' , 'choo..choo' ,
54985492 ]
54995493 verifylist = [
5500- ('reason ' , "blah" ),
5501- ('server ' , [ self . server . id ])
5494+ ('server ' , [ self . server . id , server2 . id ] ),
5495+ ('reason ' , 'choo..choo' ),
55025496 ]
55035497 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
55045498 self .cmd .take_action (parsed_args )
5505- self .servers_mock .get .assert_called_with (self .server .id )
5506- self .server .lock .assert_called_with (reason = "blah" )
5499+ self .assertEqual (2 , self .sdk_client .find_server .call_count )
5500+ self .sdk_client .lock_server .assert_called_with (
5501+ self .server .id ,
5502+ locked_reason = "choo..choo" ,
5503+ )
5504+ self .assertEqual (2 , self .sdk_client .lock_server .call_count )
55075505
5508- def test_server_lock_multi_servers_with_reason (self ):
5509- server2 = compute_fakes .FakeServer .create_one_server (
5510- methods = self .methods )
5506+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5507+ def test_server_lock_with_reason_pre_v273 (self , sm_mock ):
5508+ sm_mock .return_value = False
5509+ server = compute_fakes .FakeServer .create_one_sdk_server ()
55115510 arglist = [
5512- self . server . id , server2 .id ,
5513- '--reason' , "choo..choo " ,
5511+ server .id ,
5512+ '--reason' , "blah " ,
55145513 ]
55155514 verifylist = [
5516- ('reason ' , "choo..choo" ),
5517- ('server ' , [ self . server . id , server2 . id ])
5515+ ('server ' , [ server . id ] ),
5516+ ('reason ' , "blah" ),
55185517 ]
55195518 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
5520- self .cmd .take_action (parsed_args )
5521- self .assertEqual (2 , self .servers_mock .get .call_count )
5522- self .server .lock .assert_called_with (reason = "choo..choo" )
5523- self .assertEqual (2 , self .server .lock .call_count )
5519+ ex = self .assertRaises (
5520+ exceptions .CommandError ,
5521+ self .cmd .take_action ,
5522+ parsed_args ,
5523+ )
5524+ self .assertIn (
5525+ '--os-compute-api-version 2.73 or greater is required' , str (ex ),
5526+ )
55245527
55255528
55265529class TestServerMigrate (TestServer ):
@@ -8317,21 +8320,16 @@ def test_server_suspend_multi_servers(self):
83178320class TestServerUnlock (TestServer ):
83188321
83198322 def setUp (self ):
8320- super (TestServerUnlock , self ).setUp ()
8323+ super ().setUp ()
83218324
83228325 # Get the command object to test
83238326 self .cmd = server .UnlockServer (self .app , None )
83248327
8325- # Set methods to be tested.
8326- self .methods = {
8327- 'unlock' : None ,
8328- }
8329-
83308328 def test_server_unlock_one_server (self ):
8331- self .run_method_with_servers ( 'unlock ' , 1 )
8329+ self .run_method_with_sdk_servers ( 'unlock_server ' , 1 )
83328330
83338331 def test_server_unlock_multi_servers (self ):
8334- self .run_method_with_servers ( 'unlock ' , 3 )
8332+ self .run_method_with_sdk_servers ( 'unlock_server ' , 3 )
83358333
83368334
83378335class TestServerUnpause (TestServer ):
0 commit comments