def test_pm_not_allowed_to_add_admin_role_when_setting_role( self, mock_admin): # Arrange admin = User() admin.role = UserRole.PROJECT_MANAGER.value mock_admin.return_value = admin # Act with self.assertRaises(UserServiceError): UserService.add_role_to_user(1, 'test', 'ADMIN')
def post(self, username, role): """ Allows PMs to set the users role --- tags: - user 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: The users 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": error_msg}, 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')