@@ -319,7 +319,7 @@ def test_edit_user(self):
319319 headers = {"Authorization" : "Bearer {}" .format (token_user )},
320320 json = {"full_name" : "My Name" },
321321 )
322- assert rv .status_code == 201
322+ assert rv .status_code == 200
323323 rv = self .client .get (
324324 BASE_URL + "/users/-/" ,
325325 headers = {"Authorization" : "Bearer {}" .format (token_user )},
@@ -348,7 +348,7 @@ def test_edit_user(self):
348348 headers = {"Authorization" : "Bearer {}" .format (token_owner )},
349349 json = {"full_name" : "His Name" },
350350 )
351- assert rv .status_code == 201
351+ assert rv .status_code == 200
352352 rv = self .client .get (
353353 BASE_URL + "/users/user/" ,
354354 headers = {"Authorization" : "Bearer {}" .format (token_owner )},
@@ -570,3 +570,116 @@ def test_confirm_email(self):
570570 headers = {"Authorization" : "Bearer {}" .format (token )},
571571 )
572572 self .assertEqual (rv .status_code , 401 )
573+
574+ def test_delete_user (self ):
575+ # get user token
576+ rv = self .client .post (
577+ BASE_URL + "/token/" , json = {"username" : "user" , "password" : "123" }
578+ )
579+ assert rv .status_code == 200
580+ token_user = rv .json ["access_token" ]
581+ # get owner token
582+ rv = self .client .post (
583+ BASE_URL + "/token/" , json = {"username" : "owner" , "password" : "123" },
584+ )
585+ assert rv .status_code == 200
586+ token_owner = rv .json ["access_token" ]
587+ # add user
588+ rv = self .client .post (
589+ BASE_URL + "/users/user_to_delete/" ,
590+ headers = {"Authorization" : "Bearer {}" .format (token_owner )},
591+ json = {
592+ 593+ "role" : ROLE_MEMBER ,
594+ "full_name" : "To Delete" ,
595+ "password" : "abc" ,
596+ },
597+ )
598+ assert rv .status_code == 201
599+ rv = self .client .get (
600+ BASE_URL + "/users/user_to_delete/" ,
601+ headers = {"Authorization" : "Bearer {}" .format (token_owner )},
602+ )
603+ assert rv .status_code == 200
604+ # check token for new user
605+ rv = self .client .post (
606+ BASE_URL + "/token/" , json = {"username" : "user_to_delete" , "password" : "abc" }
607+ )
608+ assert rv .status_code == 200
609+ # user cannot delete user
610+ rv = self .client .delete (
611+ BASE_URL + "/users/user_to_delete/" ,
612+ headers = {"Authorization" : "Bearer {}" .format (token_user )},
613+ )
614+ assert rv .status_code == 403
615+ # owner can user
616+ rv = self .client .delete (
617+ BASE_URL + "/users/user_to_delete/" ,
618+ headers = {"Authorization" : "Bearer {}" .format (token_owner )},
619+ )
620+ assert rv .status_code == 200
621+ # check user is gone
622+ rv = self .client .get (
623+ BASE_URL + "/users/user_to_delete/" ,
624+ headers = {"Authorization" : "Bearer {}" .format (token_owner )},
625+ )
626+ assert rv .status_code == 404
627+ # check user can't get token
628+ rv = self .client .post (
629+ BASE_URL + "/token/" , json = {"username" : "user_to_delete" , "password" : "abc" }
630+ )
631+ assert rv .status_code == 403
632+
633+ def test_change_user_role (self ):
634+ # get user token
635+ rv = self .client .post (
636+ BASE_URL + "/token/" , json = {"username" : "user" , "password" : "123" }
637+ )
638+ assert rv .status_code == 200
639+ token_user = rv .json ["access_token" ]
640+ # get owner token
641+ rv = self .client .post (
642+ BASE_URL + "/token/" , json = {"username" : "owner" , "password" : "123" },
643+ )
644+ assert rv .status_code == 200
645+ token_owner = rv .json ["access_token" ]
646+ # add user
647+ rv = self .client .post (
648+ BASE_URL + "/users/user_change_role/" ,
649+ headers = {"Authorization" : "Bearer {}" .format (token_owner )},
650+ json = {
651+ 652+ "role" : ROLE_MEMBER ,
653+ "full_name" : "Change Role" ,
654+ "password" : "abc" ,
655+ },
656+ )
657+ assert rv .status_code == 201
658+ # get token for new user
659+ rv = self .client .post (
660+ BASE_URL + "/token/" ,
661+ json = {"username" : "user_change_role" , "password" : "abc" },
662+ )
663+ assert rv .status_code == 200
664+ token_new_user = rv .json ["access_token" ]
665+ # user can change own details
666+ rv = self .client .put (
667+ BASE_URL + "/users/-/" ,
668+ headers = {"Authorization" : "Bearer {}" .format (token_new_user )},
669+ json = {"full_name" : "Change My Role" },
670+ )
671+ assert rv .status_code == 200
672+ # user cannot change own role
673+ rv = self .client .put (
674+ BASE_URL + "/users/-/" ,
675+ headers = {"Authorization" : "Bearer {}" .format (token_new_user )},
676+ json = {"role" : ROLE_OWNER },
677+ )
678+ assert rv .status_code == 403
679+ # owner can change user role
680+ rv = self .client .put (
681+ BASE_URL + "/users/user_change_role/" ,
682+ headers = {"Authorization" : "Bearer {}" .format (token_owner )},
683+ json = {"role" : ROLE_OWNER },
684+ )
685+ assert rv .status_code == 200
0 commit comments