@@ -170,7 +170,7 @@ def test_update_user_me(
170170 client : TestClient , normal_user_token_headers : dict [str , str ], db : Session
171171) -> None :
172172 full_name = "Updated Name"
173- email = "updated email"
173+ email = random_email ()
174174 data = {"full_name" : full_name , "email" : email }
175175 r = client .patch (
176176 f"{ settings .API_V1_STR } /users/me" ,
@@ -228,6 +228,24 @@ def test_update_password_me_incorrect_password(
228228 assert updated_user ["detail" ] == "Incorrect password"
229229
230230
231+ def test_update_user_me_email_exists (
232+ client : TestClient , normal_user_token_headers : dict [str , str ], db : Session
233+ ) -> None :
234+ username = random_email ()
235+ password = random_lower_string ()
236+ user_in = UserCreate (email = username , password = password )
237+ user = crud .create_user (session = db , user_create = user_in )
238+
239+ data = {"email" : user .email }
240+ r = client .patch (
241+ f"{ settings .API_V1_STR } /users/me" ,
242+ headers = normal_user_token_headers ,
243+ json = data ,
244+ )
245+ assert r .status_code == 409
246+ assert r .json ()["detail" ] == "User with this email already exists"
247+
248+
231249def test_update_password_me_same_password_error (
232250 client : TestClient , superuser_token_headers : dict [str , str ], db : Session
233251) -> None :
@@ -330,6 +348,29 @@ def test_update_user_not_exists(
330348 assert r .json ()["detail" ] == "The user with this id does not exist in the system"
331349
332350
351+ def test_update_user_email_exists (
352+ client : TestClient , superuser_token_headers : dict [str , str ], db : Session
353+ ) -> None :
354+ username = random_email ()
355+ password = random_lower_string ()
356+ user_in = UserCreate (email = username , password = password )
357+ user = crud .create_user (session = db , user_create = user_in )
358+
359+ username2 = random_email ()
360+ password2 = random_lower_string ()
361+ user_in2 = UserCreate (email = username2 , password = password2 )
362+ user2 = crud .create_user (session = db , user_create = user_in2 )
363+
364+ data = {"email" : user2 .email }
365+ r = client .patch (
366+ f"{ settings .API_V1_STR } /users/{ user .id } " ,
367+ headers = superuser_token_headers ,
368+ json = data ,
369+ )
370+ assert r .status_code == 409
371+ assert r .json ()["detail" ] == "User with this email already exists"
372+
373+
333374def test_delete_user_super_user (
334375 client : TestClient , superuser_token_headers : dict [str , str ], db : Session
335376) -> None :
0 commit comments