Esempio n. 1
0
def get_evaluation_result(contest_id, submission_id, timeout=30):
    browser = mechanize.Browser()
    browser.set_handle_robots(False)
    base_url = "http://localhost:8889/"

    WAITING_STATUSES = re.compile(r"Compiling\.\.\.|Evaluating\.\.\.|Evaluated")
    COMPLETED_STATUS = re.compile(r"Compilation failed|Evaluated \(")

    num_tries = timeout
    while num_tries > 0:
        num_tries -= 1

        sr = AWSSubmissionViewRequest(browser, submission_id, base_url=base_url)
        sr.prepare()
        sr.execute()

        result = sr.get_submission_info()
        status = result["status"]

        if COMPLETED_STATUS.search(status):
            return result

        if WAITING_STATUSES.search(status):
            time.sleep(1)
            continue

        raise FrameworkException("Unknown submission status: %s" % status)

    raise FrameworkException("Waited too long for result.")
Esempio n. 2
0
def get_evaluation_result(contest_id, submission_id, timeout=30):
    browser = mechanize.Browser()
    browser.set_handle_robots(False)
    base_url = 'http://localhost:8889/'

    WAITING_STATUSES = re.compile(
        r'Compiling\.\.\.|Evaluating\.\.\.|Evaluated')
    COMPLETED_STATUS = re.compile(
        r'Compilation failed|Evaluated \(')

    num_tries = timeout
    while num_tries > 0:
        num_tries -= 1

        sr = AWSSubmissionViewRequest(browser, submission_id,
                                      base_url=base_url)
        sr.prepare()
        sr.execute()

        result = sr.get_submission_info()
        status = result['status']

        if COMPLETED_STATUS.search(status):
            return result

        if WAITING_STATUSES.search(status):
            time.sleep(1)
            continue

        raise FrameworkException("Unknown submission status: %s" % status)

    raise FrameworkException("Waited too long for result.")