Пример #1
0
    def post(self, username):
        """
        Updates a user
        ---
        tags:
          - admin - users
        produces:
          - application/json
        parameters:
          - in: header
            name: Authorization
            description: Base64 encoded session token
            required: true
            type: string
          - in: body
            name: body
            required: true
            description: JSON object for creating a new user
            schema:
                  properties:
                      role:
                          type: string
                          default: user
          - in: path
            name: username
            description: the unique user
            required: true
            type: string
            default: dmisuser
        responses:
          200:
            description: User details updated
          400:
            description: Invalid request
          401:
            description: Unauthorized, credentials are invalid
          404:
            description: Not found
          500:
            description: Internal Server Error
        """
        try:
            user_update_dto = UserUpdateDTO(request.get_json())
            user_update_dto.username = username
            user_update_dto.validate()
        except DataError as e:
            current_app.logger.error(f'error validating request: {str(e)}')
            return str(e), 400

        try:
            updated_user = UserService.update_user(user_update_dto)
            return updated_user.to_primitive(), 200
        except NotFound:
            return {"Error": "User not found"}, 404
        except Exception as e:
            error_msg = f'User update - Unhandled error: {str(e)}'
            current_app.logger.critical(error_msg)
            return {"Error": error_msg}, 500
Пример #2
0
    def test_update_user_role(self):
        """ Check that the role is updated """
        if self.skip_tests:
            return

        # Arrange
        test_user_update_dto = UserUpdateDTO()
        test_user_update_dto.username = '******'
        test_user_update_dto.role = 'admin'

        # Act
        updated_user = UserService.update_user(test_user_update_dto)

        # Assert
        self.assertEqual(updated_user.role.upper(),
                         test_user_update_dto.role.upper())