@@ -44,11 +44,9 @@ def setUp(self):
4444 self .user = User .objects .create (username = 'test_user' )
4545 self .strategy = load_strategy ()
4646
47- @patch ('auth_backends.pipeline.SKIP_UPDATE_EMAIL_ON_USERNAME_MISMATCH.is_enabled' )
4847 @patch ('auth_backends.pipeline.set_custom_attribute' )
49- def test_update_email (self , mock_set_attribute , mock_toggle ):
48+ def test_update_email (self , mock_set_attribute ):
5049 """ Verify that user email is updated upon changing email when usernames match. """
51- mock_toggle .return_value = False
5250 updated_email = 'updated@example.com'
5351 self .assertNotEqual (self .user .email , updated_email )
5452
@@ -60,33 +58,24 @@ def test_update_email(self, mock_set_attribute, mock_toggle):
6058 self .assertEqual (updated_user .email , updated_email )
6159 self .assertNotEqual (updated_user .email , initial_email )
6260
63- mock_set_attribute .assert_any_call ('update_email.username_mismatch' , False )
64- mock_set_attribute .assert_any_call ('update_email.rollout_toggle_enabled' , False )
6561 self .assert_attribute_was_set (mock_set_attribute , 'update_email.email_updated' , should_exist = True )
6662
67- @patch ('auth_backends.pipeline.SKIP_UPDATE_EMAIL_ON_USERNAME_MISMATCH.is_enabled' )
6863 @patch ('auth_backends.pipeline.set_custom_attribute' )
69- def test_update_email_with_none (self , mock_set_attribute , mock_toggle ):
64+ def test_update_email_with_none (self , mock_set_attribute ):
7065 """ Verify that user email is not updated if email value is None. """
71- mock_toggle .return_value = False
7266 old_email = self .user .email
7367
7468 update_email (self .strategy , {'email' : None , 'username' : 'test_user' }, user = self .user )
7569
7670 updated_user = User .objects .get (pk = self .user .pk )
7771 self .assertEqual (updated_user .email , old_email )
7872
79- mock_set_attribute .assert_any_call ('update_email.username_mismatch' , False )
80- mock_set_attribute .assert_any_call ('update_email.rollout_toggle_enabled' , False )
8173 self .assert_attribute_was_set (mock_set_attribute , 'update_email.email_updated' , should_exist = False )
8274
83- @patch ('auth_backends.pipeline.SKIP_UPDATE_EMAIL_ON_USERNAME_MISMATCH.is_enabled' )
8475 @patch ('auth_backends.pipeline.logger' )
8576 @patch ('auth_backends.pipeline.set_custom_attribute' )
86- def test_username_mismatch_no_update_toggle_enabled (self , mock_set_attribute , mock_logger , mock_toggle ):
87- """ Verify that email is not updated when usernames don't match and toggle is enabled. """
88- mock_toggle .return_value = True
89-
77+ def test_username_mismatch_no_update (self , mock_set_attribute , mock_logger ):
78+ """ Verify that email is not updated when usernames don't match. """
9079 old_email = self .user .email
9180 updated_email = 'updated@example.com'
9281
@@ -95,49 +84,16 @@ def test_username_mismatch_no_update_toggle_enabled(self, mock_set_attribute, mo
9584 updated_user = User .objects .get (pk = self .user .pk )
9685 self .assertEqual (updated_user .email , old_email )
9786
98- self .assertEqual (mock_logger .warning .call_count , 2 )
99- mock_logger .warning .assert_any_call (
100- "Username mismatch during email update. User username: %s, Details username: %s" ,
101- 'test_user' , 'different_user'
102- )
103- mock_logger .warning .assert_any_call (
104- "Skipping email update for user %s due to username mismatch and "
105- "SKIP_UPDATE_EMAIL_ON_USERNAME_MISMATCH toggle enabled" ,
106- 'test_user'
87+ mock_logger .warning .assert_called_once_with (
88+ "Unexpected username mismatch during email update. Skipping email update for user %s. "
89+ "User username: %s, Details username: %s" ,
90+ 'test_user' ,
91+ 'test_user' ,
92+ 'different_user'
10793 )
10894
109- mock_set_attribute .assert_any_call ('update_email.username_mismatch' , True )
110- mock_set_attribute .assert_any_call ('update_email.rollout_toggle_enabled' , True )
111- mock_set_attribute .assert_any_call ('update_email.details_username' , 'different_user' )
112- mock_set_attribute .assert_any_call ('update_email.user_username' , 'test_user' )
113- mock_set_attribute .assert_any_call ('update_email.details_has_email' , True )
11495 self .assert_attribute_was_set (mock_set_attribute , 'update_email.email_updated' , should_exist = False )
11596
116- @patch ('auth_backends.pipeline.SKIP_UPDATE_EMAIL_ON_USERNAME_MISMATCH.is_enabled' )
117- @patch ('auth_backends.pipeline.logger' )
118- @patch ('auth_backends.pipeline.set_custom_attribute' )
119- def test_username_mismatch_with_update_toggle_disabled (self , mock_set_attribute , mock_logger , mock_toggle ):
120- """ Verify that email is updated when usernames don't match but toggle is disabled. """
121- mock_toggle .return_value = False
122-
123- old_email = self .user .email
124- updated_email = 'updated@example.com'
125-
126- update_email (self .strategy , {'email' : updated_email , 'username' : 'different_user' }, user = self .user )
127-
128- updated_user = User .objects .get (pk = self .user .pk )
129- self .assertEqual (updated_user .email , updated_email )
130- self .assertNotEqual (updated_user .email , old_email )
131-
132- mock_logger .warning .assert_called_once ()
133-
134- mock_set_attribute .assert_any_call ('update_email.username_mismatch' , True )
135- mock_set_attribute .assert_any_call ('update_email.rollout_toggle_enabled' , False )
136- mock_set_attribute .assert_any_call ('update_email.details_username' , 'different_user' )
137- mock_set_attribute .assert_any_call ('update_email.user_username' , 'test_user' )
138- mock_set_attribute .assert_any_call ('update_email.details_has_email' , True )
139- self .assert_attribute_was_set (mock_set_attribute , 'update_email.email_updated' , should_exist = True )
140-
14197 def assert_attribute_was_set (self , mock_set_attribute , attribute_name , should_exist = True ):
14298 """
14399 Assert that a specific attribute was or was not set via set_custom_attribute.
0 commit comments