@@ -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 ,
@@ -5441,87 +5437,94 @@ def test_server_list_v269_with_partial_constructs(self):
54415437class TestServerLock (TestServer ):
54425438
54435439 def setUp (self ):
5444- super (TestServerLock , self ).setUp ()
5440+ super ().setUp ()
5441+
5442+ self .server = compute_fakes .FakeServer .create_one_sdk_server ()
5443+
5444+ self .app .client_manager .sdk_connection = mock .Mock ()
5445+ self .app .client_manager .sdk_connection .compute = mock .Mock ()
5446+ self .sdk_client = self .app .client_manager .sdk_connection .compute
5447+
5448+ self .sdk_client .find_server .return_value = self .server
5449+ self .sdk_client .lock_server .return_value = None
54455450
54465451 # Get the command object to test
54475452 self .cmd = server .LockServer (self .app , None )
54485453
5449- # Set methods to be tested.
5450- self .methods = {
5451- 'lock' : None ,
5452- }
5453-
5454- def test_server_lock_one_server (self ):
5455- self .run_method_with_servers ('lock' , 1 )
5454+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5455+ def test_server_lock (self , sm_mock ):
5456+ sm_mock .return_value = False
5457+ self .run_method_with_sdk_servers ('lock_server' , 1 )
54565458
5457- def test_server_lock_multi_servers (self ):
5458- self .run_method_with_servers ('lock' , 3 )
5459+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5460+ def test_server_lock_multi_servers (self , sm_mock ):
5461+ sm_mock .return_value = False
5462+ self .run_method_with_sdk_servers ('lock_server' , 3 )
54595463
5460- def test_server_lock_with_reason (self ):
5461- server = compute_fakes .FakeServer .create_one_server ()
5464+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5465+ def test_server_lock_with_reason (self , sm_mock ):
5466+ sm_mock .return_value = True
54625467 arglist = [
5463- server .id ,
5464- '--reason' , " blah" ,
5468+ self . server .id ,
5469+ '--reason' , ' blah' ,
54655470 ]
54665471 verifylist = [
5467- ('reason ' , "blah" ),
5468- ('server ' , [ server . id ])
5472+ ('server ' , [ self . server . id ] ),
5473+ ('reason ' , 'blah' ),
54695474 ]
54705475 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
5471- ex = self .assertRaises (exceptions .CommandError ,
5472- self .cmd .take_action ,
5473- parsed_args )
5474- self .assertIn (
5475- '--os-compute-api-version 2.73 or greater is required' , str (ex ))
5476-
5477-
5478- class TestServerLockV273 (TestServerLock ):
5479-
5480- def setUp (self ):
5481- super (TestServerLockV273 , self ).setUp ()
5482-
5483- self .server = compute_fakes .FakeServer .create_one_server (
5484- methods = self .methods )
5485-
5486- # This is the return value for utils.find_resource()
5487- self .servers_mock .get .return_value = self .server
5488-
5489- self .app .client_manager .compute .api_version = \
5490- api_versions .APIVersion ('2.73' )
5491-
5492- # Get the command object to test
5493- self .cmd = server .LockServer (self .app , None )
5476+ self .cmd .take_action (parsed_args )
5477+ self .sdk_client .find_server .assert_called_with (
5478+ self .server .id ,
5479+ ignore_missing = False ,
5480+ )
5481+ self .sdk_client .lock_server .assert_called_with (
5482+ self .server .id ,
5483+ locked_reason = "blah" ,
5484+ )
54945485
5495- def test_server_lock_with_reason (self ):
5486+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5487+ def test_server_lock_with_reason_multi_servers (self , sm_mock ):
5488+ sm_mock .return_value = True
5489+ server2 = compute_fakes .FakeServer .create_one_sdk_server ()
54965490 arglist = [
5497- self .server .id ,
5498- '--reason' , "blah" ,
5491+ self .server .id , server2 . id ,
5492+ '--reason' , 'choo..choo' ,
54995493 ]
55005494 verifylist = [
5501- ('reason ' , "blah" ),
5502- ('server ' , [ self . server . id ])
5495+ ('server ' , [ self . server . id , server2 . id ] ),
5496+ ('reason ' , 'choo..choo' ),
55035497 ]
55045498 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
55055499 self .cmd .take_action (parsed_args )
5506- self .servers_mock .get .assert_called_with (self .server .id )
5507- self .server .lock .assert_called_with (reason = "blah" )
5500+ self .assertEqual (2 , self .sdk_client .find_server .call_count )
5501+ self .sdk_client .lock_server .assert_called_with (
5502+ self .server .id ,
5503+ locked_reason = "choo..choo" ,
5504+ )
5505+ self .assertEqual (2 , self .sdk_client .lock_server .call_count )
55085506
5509- def test_server_lock_multi_servers_with_reason (self ):
5510- server2 = compute_fakes .FakeServer .create_one_server (
5511- methods = self .methods )
5507+ @mock .patch .object (sdk_utils , 'supports_microversion' )
5508+ def test_server_lock_with_reason_pre_v273 (self , sm_mock ):
5509+ sm_mock .return_value = False
5510+ server = compute_fakes .FakeServer .create_one_sdk_server ()
55125511 arglist = [
5513- self . server . id , server2 .id ,
5514- '--reason' , "choo..choo " ,
5512+ server .id ,
5513+ '--reason' , "blah " ,
55155514 ]
55165515 verifylist = [
5517- ('reason ' , "choo..choo" ),
5518- ('server ' , [ self . server . id , server2 . id ])
5516+ ('server ' , [ server . id ] ),
5517+ ('reason ' , "blah" ),
55195518 ]
55205519 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
5521- self .cmd .take_action (parsed_args )
5522- self .assertEqual (2 , self .servers_mock .get .call_count )
5523- self .server .lock .assert_called_with (reason = "choo..choo" )
5524- self .assertEqual (2 , self .server .lock .call_count )
5520+ ex = self .assertRaises (
5521+ exceptions .CommandError ,
5522+ self .cmd .take_action ,
5523+ parsed_args ,
5524+ )
5525+ self .assertIn (
5526+ '--os-compute-api-version 2.73 or greater is required' , str (ex ),
5527+ )
55255528
55265529
55275530class TestServerMigrate (TestServer ):
@@ -8318,21 +8321,16 @@ def test_server_suspend_multi_servers(self):
83188321class TestServerUnlock (TestServer ):
83198322
83208323 def setUp (self ):
8321- super (TestServerUnlock , self ).setUp ()
8324+ super ().setUp ()
83228325
83238326 # Get the command object to test
83248327 self .cmd = server .UnlockServer (self .app , None )
83258328
8326- # Set methods to be tested.
8327- self .methods = {
8328- 'unlock' : None ,
8329- }
8330-
83318329 def test_server_unlock_one_server (self ):
8332- self .run_method_with_servers ( 'unlock ' , 1 )
8330+ self .run_method_with_sdk_servers ( 'unlock_server ' , 1 )
83338331
83348332 def test_server_unlock_multi_servers (self ):
8335- self .run_method_with_servers ( 'unlock ' , 3 )
8333+ self .run_method_with_sdk_servers ( 'unlock_server ' , 3 )
83368334
83378335
83388336class TestServerUnpause (TestServer ):
0 commit comments