Example #1
0
    def __read_user_by_user_name(token: str, user_name: str) -> dict:
        """
        Reads current user's information

        :param token:       Session token which contains the current user's information
        :param user_name:   User name

        :return:    User information object

        Returned dictionary contains items:

        - id
        - user_name
        - display_name
        - email
        - active
        """
        user = None
        success = False
        error_code = None
        error_message = None

        connection = DatabaseInterface.create_connection()

        try:
            success = connection.begin_transaction()

            # Extract session user
            if success:
                session_user = RestrictedResource._read_session_user(
                    connection, token)

                if session_user is None:
                    success = False
                    error_code = 400
                    error_message = "Invalid session token"

            # Read requested user
            if success:
                user = UserManagementInterface.read_user_by_user_name(
                    connection, user_name)

                if user is None:
                    success = False
                    error_code = 400
                    error_message = "Invalid user name"

            connection.rollback_transaction()
        except:
            connection.rollback_transaction()
            abort(500, message="Internal error, please try again")

        # Return user
        if success:
            return jsonify(user)
        else:
            if (error_code is not None) and (error_message is not None):
                abort(error_code, message=error_message)
            else:
                abort(500, message="Internal error")
    def test_read_user_by_user_name(self):
        user_id = self.create_user_test1()
        self.assertIsNotNone(user_id)

        # Positive tests ---------------------------------------------------------------------------
        user = UserManagementInterface.read_user_by_user_name("test1")

        self.assertEqual(user["id"], user_id)
        self.assertEqual(user["user_name"], "test1")
        self.assertEqual(user["display_name"], "Test 1")
        self.assertEqual(user["email"], "*****@*****.**")
        self.assertEqual(user["active"], True)

        # Negative tests ---------------------------------------------------------------------------
        self.assertIsNone(UserManagementInterface.read_user_by_user_name(""))
        self.assertIsNone(UserManagementInterface.read_user_by_user_name("test999"))
    def test_read_user_by_user_name(self):
        user_id = self.create_user_test1()
        self.assertIsNotNone(user_id)

        # Positive tests ---------------------------------------------------------------------------
        user = UserManagementInterface.read_user_by_user_name("test1")

        self.assertEqual(user["id"], user_id)
        self.assertEqual(user["user_name"], "test1")
        self.assertEqual(user["display_name"], "Test 1")
        self.assertEqual(user["email"], "*****@*****.**")
        self.assertEqual(user["active"], True)

        # Negative tests ---------------------------------------------------------------------------
        self.assertIsNone(UserManagementInterface.read_user_by_user_name(""))
        self.assertIsNone(
            UserManagementInterface.read_user_by_user_name("test999"))
Example #4
0
    def __read_user_by_user_name(token: str, user_name: str) -> dict:
        """
        Reads current user's information

        :param token:       Session token which contains the current user's information
        :param user_name:   User name

        :return:    User information object

        Returned dictionary contains items:

        - id
        - user_name
        - display_name
        - email
        - active
        """
        user = None
        success = False
        error_code = None
        error_message = None

        connection = DatabaseInterface.create_connection()

        try:
            success = connection.begin_transaction()

            # Extract session user
            if success:
                session_user = RestrictedResource._read_session_user(connection, token)

                if session_user is None:
                    success = False
                    error_code = 400
                    error_message = "Invalid session token"

            # Read requested user
            if success:
                user = UserManagementInterface.read_user_by_user_name(connection, user_name)

                if user is None:
                    success = False
                    error_code = 400
                    error_message = "Invalid user name"

            connection.rollback_transaction()
        except:
            connection.rollback_transaction()
            abort(500, message="Internal error, please try again")

        # Return user
        if success:
            return jsonify(user)
        else:
            if (error_code is not None) and (error_message is not None):
                abort(error_code, message=error_message)
            else:
                abort(500, message="Internal error")