@@ -166,6 +166,7 @@ def test_change_username_when_different(self):
166
166
user = self .create_user (email = "c@example.com" , username = "diff@example.com" )
167
167
self .login_as (user = user , superuser = False )
168
168
169
+ self .create_useremail (user , "new@example.com" , is_verified = True )
169
170
self .get_success_response ("me" , username = "new@example.com" )
170
171
171
172
user = User .objects .get (id = user .id )
@@ -179,13 +180,27 @@ def test_change_username_when_same(self):
179
180
user = self .create_user (email = "c@example.com" , username = "c@example.com" )
180
181
self .login_as (user = user )
181
182
183
+ self .create_useremail (user , "new@example.com" , is_verified = True )
182
184
self .get_success_response ("me" , username = "new@example.com" )
183
185
184
186
user = User .objects .get (id = user .id )
185
187
186
188
assert user .email == "new@example.com"
187
189
assert user .username == "new@example.com"
188
190
191
+ def test_cannot_change_username_to_non_verified (self ):
192
+ user = self .create_user (email = "c@example.com" , username = "c@example.com" )
193
+ self .login_as (user = user )
194
+
195
+ self .create_useremail (user , "new@example.com" , is_verified = False )
196
+ resp = self .get_error_response ("me" , username = "new@example.com" , status_code = 400 )
197
+ assert resp .data ["detail" ] == "Verified email address is not found."
198
+
199
+ user = User .objects .get (id = user .id )
200
+
201
+ assert user .email == "c@example.com"
202
+ assert user .username == "c@example.com"
203
+
189
204
190
205
@control_silo_test
191
206
class UserDetailsSuperuserUpdateTest (UserDetailsTest ):
0 commit comments