def patch(self, username, role): """ Allows PMs to set a user's role --- tags: - users produces: - application/json parameters: - in: header name: Authorization description: Base64 encoded session token required: true type: string default: Token sessionTokenHere== - name: username in: path description: Mapper's OpenStreetMap username required: true type: string default: Thinkwhere - name: role in: path description: The role to add required: true type: string default: ADMIN responses: 200: description: Role set 401: description: Unauthorized - Invalid credentials 403: description: Forbidden 404: description: User not found 500: description: Internal Server Error """ try: UserService.add_role_to_user(tm.authenticated_user_id, username, role) return {"Success": "Role Added"}, 200 except UserServiceError: return {"Error": "Not allowed"}, 403 except NotFound: return {"Error": "User or mapping not found"}, 404 except Exception as e: error_msg = f"User GET - unhandled error: {str(e)}" current_app.logger.critical(error_msg) return {"Error": "Unable to update user role"}, 500
def test_unknown_role_raise_error_when_setting_role(self): # Act / Assert with self.assertRaises(UserServiceError): UserService.add_role_to_user(1, "test", "TEST")