@@ -142,7 +142,7 @@ def test_create_user_by_normal_user(
142142 headers = normal_user_token_headers ,
143143 json = data ,
144144 )
145- assert r .status_code == 400
145+ assert r .status_code == 403
146146
147147
148148def test_retrieve_users (
@@ -402,50 +402,66 @@ def test_update_user_email_exists(
402402 assert r .json ()["detail" ] == "User with this email already exists"
403403
404404
405- def test_delete_user_super_user (
406- client : TestClient , superuser_token_headers : dict [str , str ], db : Session
407- ) -> None :
405+ def test_delete_user_me (client : TestClient , db : Session ) -> None :
408406 username = random_email ()
409407 password = random_lower_string ()
410408 user_in = UserCreate (email = username , password = password )
411409 user = crud .create_user (session = db , user_create = user_in )
412410 user_id = user .id
411+
412+ login_data = {
413+ "username" : username ,
414+ "password" : password ,
415+ }
416+ r = client .post (f"{ settings .API_V1_STR } /login/access-token" , data = login_data )
417+ tokens = r .json ()
418+ a_token = tokens ["access_token" ]
419+ headers = {"Authorization" : f"Bearer { a_token } " }
420+
413421 r = client .delete (
414- f"{ settings .API_V1_STR } /users/{ user_id } " ,
415- headers = superuser_token_headers ,
422+ f"{ settings .API_V1_STR } /users/me " ,
423+ headers = headers ,
416424 )
417425 assert r .status_code == 200
418426 deleted_user = r .json ()
419427 assert deleted_user ["message" ] == "User deleted successfully"
428+ result = db .exec (select (User ).where (User .id == user_id )).first ()
429+ assert result is None
420430
421431 user_query = select (User ).where (User .id == user_id )
422432 user_db = db .execute (user_query ).first ()
423433 assert user_db is None
424434
425435
426- def test_delete_user_current_user (client : TestClient , db : Session ) -> None :
436+ def test_delete_user_me_as_superuser (
437+ client : TestClient , superuser_token_headers : dict [str , str ]
438+ ) -> None :
439+ r = client .delete (
440+ f"{ settings .API_V1_STR } /users/me" ,
441+ headers = superuser_token_headers ,
442+ )
443+ assert r .status_code == 403
444+ response = r .json ()
445+ assert response ["detail" ] == "Super users are not allowed to delete themselves"
446+
447+
448+ def test_delete_user_super_user (
449+ client : TestClient , superuser_token_headers : dict [str , str ], db : Session
450+ ) -> None :
427451 username = random_email ()
428452 password = random_lower_string ()
429453 user_in = UserCreate (email = username , password = password )
430454 user = crud .create_user (session = db , user_create = user_in )
431455 user_id = user .id
432-
433- login_data = {
434- "username" : username ,
435- "password" : password ,
436- }
437- r = client .post (f"{ settings .API_V1_STR } /login/access-token" , data = login_data )
438- tokens = r .json ()
439- a_token = tokens ["access_token" ]
440- headers = {"Authorization" : f"Bearer { a_token } " }
441-
442456 r = client .delete (
443457 f"{ settings .API_V1_STR } /users/{ user_id } " ,
444- headers = headers ,
458+ headers = superuser_token_headers ,
445459 )
446460 assert r .status_code == 200
447461 deleted_user = r .json ()
448462 assert deleted_user ["message" ] == "User deleted successfully"
463+ result = db .exec (select (User ).where (User .id == user_id )).first ()
464+ assert result is None
449465
450466 user_query = select (User ).where (User .id == user_id )
451467 user_db = db .execute (user_query ).first ()
0 commit comments