@@ -353,7 +353,7 @@ def _test_add_user_to_local_group(self,
353353
354354 is_in_alias = ret_value != self ._winutils .ERROR_MEMBER_IN_ALIAS
355355
356- if ret_value is not 0 and is_in_alias :
356+ if ret_value and is_in_alias :
357357 self .assertRaises (
358358 exception .CloudbaseInitException ,
359359 self ._winutils .add_user_to_local_group ,
@@ -833,21 +833,30 @@ def test_set_static_network_config_ipv6(self):
833833
834834 @mock .patch ('cloudbaseinit.osutils.windows.WindowsUtils'
835835 '._get_network_msft_adapter' )
836- def _test_rename_network_adapter (self , rename_exception ,
836+ @mock .patch ('time.sleep' )
837+ def _test_rename_network_adapter (self ,
838+ rename_adapter_retries ,
839+ rename_adapter_failed ,
840+ mock_sleep ,
837841 mock_get_network_adapter ):
838842 old_name = "fake_old"
839843 new_name = "fake_new"
840844
841845 adapter = mock .Mock ()
842846 adapter .Name = mock .sentinel .old_name
843847 mock_get_network_adapter .return_value = adapter
844- get_network_adapter_called = 1
845- if rename_exception :
846- adapter .rename .side_effect = Exception ("fake exception" )
848+ get_network_adapter_called = 1 + rename_adapter_retries
849+ rename_adapter_side_effect = []
850+ for i in range (rename_adapter_retries ):
851+ rename_adapter_side_effect .append (Exception ("fake exception" ))
852+ if rename_adapter_failed :
853+ adapter .rename .side_effect = rename_adapter_side_effect
847854 with self .assertRaises (exception .CloudbaseInitException ):
848855 self ._winutils .rename_network_adapter (old_name , new_name )
849856 else :
850- get_network_adapter_called = 2
857+ get_network_adapter_called += 1
858+ rename_adapter_side_effect .append (None )
859+ adapter .rename .side_effect = rename_adapter_side_effect
851860 self ._winutils .rename_network_adapter (old_name , new_name )
852861
853862 adapter .rename .assert_called ()
@@ -856,9 +865,11 @@ def _test_rename_network_adapter(self, rename_exception,
856865 get_network_adapter_called )
857866 self .assertEqual (mock_get_network_adapter .call_args_list [0 ].args ,
858867 (old_name ,))
859- if not exception :
860- self .assertEqual (mock_get_network_adapter .call_args_list [1 ].args ,
861- (new_name ,))
868+ if not rename_adapter_failed :
869+ self .assertEqual (
870+ mock_get_network_adapter .
871+ call_args_list [get_network_adapter_called - 1 ].args ,
872+ (new_name ,))
862873
863874 def _test_get_config_key_name (self , section ):
864875 response = self ._winutils ._get_config_key_name (section )
@@ -875,10 +886,13 @@ def test_get_config_key_name_no_section(self):
875886 self ._test_get_config_key_name (None )
876887
877888 def test_rename_network_adapter (self ):
878- self ._test_rename_network_adapter (False )
889+ self ._test_rename_network_adapter (0 , False )
890+
891+ def test_rename_network_adapter_with_retry (self ):
892+ self ._test_rename_network_adapter (3 , False )
879893
880- def test_rename_network_adapter_fail (self ):
881- self ._test_rename_network_adapter (True )
894+ def test_rename_network_adapter_failed (self ):
895+ self ._test_rename_network_adapter (5 , True )
882896
883897 @mock .patch ('cloudbaseinit.osutils.windows.WindowsUtils'
884898 '._get_config_key_name' )
0 commit comments