Get the result of task. Must only be called ONCE, AFTER the task is done (after a successfull call to is_done).
            :return a tuple (result, grade, problems, tests, custom, archive)
            result is itself a tuple containing the result string and the main feedback (i.e. ('success', 'You succeeded')
            grade is a number between 0 and 100 indicating the grade of the users
            problems is a dict of tuple, in the form {'problemid': result}
            test is a dict of tests made in the container
            custom is a dict containing random things set in the container
            archive is either None or a bytes containing a tgz archive of files from the job

def get_result(self, bjobid):
        """
            Get the result of task. Must only be called ONCE, AFTER the task is done (after a successfull call to is_done).
            :return a tuple (result, grade, problems, tests, custom, archive)
            result is itself a tuple containing the result string and the main feedback (i.e. ('success', 'You succeeded')
            grade is a number between 0 and 100 indicating the grade of the users
            problems is a dict of tuple, in the form {'problemid': result}
            test is a dict of tests made in the container
            custom is a dict containing random things set in the container
            archive is either None or a bytes containing a tgz archive of files from the job
        """
        result = self._jobs_done[str(bjobid)]
        del self._jobs_done[str(bjobid)]
        return result