Example #1
0
    def _prepare(self):
        """Select a random solution and prepare it for submission.

        If task/ is the task directory, it might contain files (only
        if the submission format is with a single file) and
        directory. If it contains a file, it is assumed that it is the
        only element in the submission format, and is the basename
        without extension of the file. If it is a directory, all files
        inside are assumed to be part of the submission format with
        their basenames without extension.

        """
        GenericRequest._prepare(self)

        # Select a random directory or file inside the task directory.
        task_path = os.path.join(self.submissions_path, self.task[1])
        sources = os.listdir(task_path)
        source = random.choice(sources)
        lang = filename_to_language(source)
        if lang is not None:
            self.data["language"] = lang.name
        self.source_path = os.path.join(task_path, source)

        # Compose the submission format
        self.files = []
        if os.path.isdir(self.source_path):
            submission_formats = os.listdir(self.source_path)
            self.files = [('%s.%%l' % (os.path.splitext(sf)[0]),
                           os.path.join(self.source_path, sf))
                          for sf in submission_formats]
        else:
            submission_format = os.path.splitext(source)[0]
            self.files = [('%s.%%l' % (submission_format), self.source_path)]
Example #2
0
 def __init__(self, browser, task, filename, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%ssubmit/%s" % (self.base_url,
                                 encrypt_number(task[0]))
     self.task = task
     self.filename = filename
     self.data = {}
Example #3
0
 def __init__(self, browser, task, base_url=None,
              submissions_path=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/submit" % (self.base_url, task[1])
     self.task = task
     self.submissions_path = submissions_path
     self.data = {}
Example #4
0
 def _prepare(self):
     GenericRequest._prepare(self)
     # Let's generate an arbitrary input file.
     temp_file, temp_filename = tempfile.mkstemp()
     self.files = \
         list(zip(self.submission_format, self.filenames)) + \
         [("input", temp_filename)]
Example #5
0
 def prepare(self):
     GenericRequest.prepare(self)
     task_path = os.path.join(self.submissions_path, self.task[1])
     sources = os.listdir(task_path)
     source = random.choice(sources)
     self.source_path = os.path.join(task_path, source)
     self.files = [('%s.%%l' % (self.task[1]), self.source_path)]
Example #6
0
 def __init__(self, browser, task, base_url=None,
              submissions_path=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%ssubmit/%s" % (self.base_url,
                                 encrypt_number(task[0]))
     self.task = task
     self.submissions_path = submissions_path
     self.data = {}
Example #7
0
 def __init__(self, browser, task, submission_num, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/submissions/%s/token" % (self.base_url,
                                                     task[1],
                                                     submission_num)
     self.task = task
     self.submission_num = submission_num
     self.data = {}
Example #8
0
 def __init__(self, browser, task, submission_format_element,
              filename, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/submit" % (self.base_url, task[1])
     self.task = task
     self.submission_format_element = submission_format_element
     self.filename = filename
     self.data = {}
Example #9
0
 def __init__(self, browser, task, submission_num, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/submissions/%s/token" % (self.base_url,
                                                     task[1],
                                                     submission_num)
     self.task = task
     self.submission_num = submission_num
     self.data = {}
Example #10
0
 def _prepare(self):
     GenericRequest._prepare(self)
     # Let's generate an arbitrary input file.
     # TODO: delete this file once we're done with it.
     _, temp_filename = tempfile.mkstemp()
     self.files = \
         list(zip(self.submission_format, self.filenames)) + \
         [("input", temp_filename)]
Example #11
0
 def __init__(self, browser, username, password, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.username = username
     self.password = password
     self.url = '%slogin' % self.base_url
     self.data = {'username': self.username,
                  'password': self.password,
                  'next': '/'}
Example #12
0
 def __init__(self, browser, username, password, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.username = username
     self.password = password
     self.url = '%slogin' % self.base_url
     self.data = {'username': self.username,
                  'password': self.password,
                  'next': '/'}
Example #13
0
 def _prepare(self):
     GenericRequest._prepare(self)
     # Let's generate an arbitrary input file.
     # TODO: delete this file once we're done with it.
     _, temp_filename = tempfile.mkstemp()
     self.files = \
         list(zip(self.submission_format, self.filenames)) + \
         [("input", temp_filename)]
Example #14
0
 def __init__(self, browser, task, submission_format_element,
              filename, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/submit" % (self.base_url, task[1])
     self.task = task
     self.submission_format_element = submission_format_element
     self.filename = filename
     self.data = {}
Example #15
0
 def test_success(self):
     if not GenericRequest.test_success(self):
         return False
     try:
         self.get_submission_info()
         return True
     except:
         return False
Example #16
0
 def __init__(self, browser, task, submission_format,
              filenames, language=None, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%s/tasks/%s/test" % (self.base_url, task[1])
     self.task = task
     self.submission_format = submission_format
     self.filenames = filenames
     self.data = {}
     # If not passed, try to recover the language from the filenames.
     if language is None:
         for filename in filenames:
             lang = filename_to_language(filename)
             if lang is not None:
                 language = lang.name
                 break
     # Only send the language in the request if not None.
     if language is not None:
         self.data = {"language": language}
Example #17
0
 def __init__(self, browser, task, submission_format,
              filenames, language=None, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%s/tasks/%s/test" % (self.base_url, task[1])
     self.task = task
     self.submission_format = submission_format
     self.filenames = filenames
     self.data = {}
     # If not passed, try to recover the language from the filenames.
     if language is None:
         for filename in filenames:
             lang = filename_to_language(filename)
             if lang is not None:
                 language = lang.name
                 break
     # Only send the language in the request if not None.
     if language is not None:
         self.data = {"language": language}
Example #18
0
 def test_success(self):
     if not GenericRequest.test_success(self):
         return False
     fail_re = re.compile('Failed to log in.')
     if fail_re.search(self.res_data) is not None:
         return False
     username_re = re.compile(self.username)
     if username_re.search(self.res_data) is None:
         return False
     return True
Example #19
0
 def test_success(self):
     if not GenericRequest.test_success(self):
         return False
     username_re = re.compile(self.username)
     if self.loggedin:
         if username_re.search(self.res_data) is None:
             return False
     else:
         if username_re.search(self.res_data) is not None:
             return False
     return True
Example #20
0
    def test_success(self):
        if not GenericRequest.test_success(self):
            return False

        return True
Example #21
0
 def __init__(self, browser, submission_id, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.submission_id = submission_id
     self.url = "%ssubmission/%s" % (self.base_url, submission_id)
Example #22
0
 def __init__(self, browser, task_id, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/description" % (self.base_url, task_id)
     self.task_id = task_id
Example #23
0
 def specific_info(self):
     return 'Task: %s (ID %d)\nFile: %s\n' % \
         (self.task[1], self.task[0], self.source_path) + \
         GenericRequest.specific_info(self)
Example #24
0
 def __init__(self, browser, task, filename, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/submit" % (self.base_url, task[1])
     self.task = task
     self.filename = filename
     self.data = {}
Example #25
0
 def __init__(self, browser, task, base_url=None, submissions_path=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%ssubmit/%s" % (self.base_url, encrypt_number(task[0]))
     self.task = task
     self.submissions_path = submissions_path
     self.data = {}
Example #26
0
 def __init__(self, session, task, base_url=None, submissions_path=None):
     GenericRequest.__init__(self, session, base_url)
     self.url = "%stasks/%s/submit" % (self.base_url, task[1])
     self.task = task
     self.submissions_path = submissions_path
     self.data = {}
Example #27
0
 def _prepare(self):
     GenericRequest._prepare(self)
     self.files = list(zip(self.submission_format, self.filenames))
Example #28
0
 def __init__(self, browser, task_id, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s" % (self.base_url, encrypt_number(task_id))
     self.task_id = task_id
Example #29
0
 def __init__(self, browser, task_id, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s" % (self.base_url, encrypt_number(task_id))
     self.task_id = task_id
Example #30
0
 def prepare(self):
     GenericRequest.prepare(self)
     self.files = [['%s.%%l' % self.task[1], self.filename]]
Example #31
0
 def _prepare(self):
     GenericRequest._prepare(self)
     self.files = [(self.submission_format_element, self.filename)]
Example #32
0
 def prepare(self):
     GenericRequest.prepare(self)
     self.files = [('%s.%%l' % (self.task[1]), self.filename)]
Example #33
0
 def __init__(self, browser, username, loggedin, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = self.base_url
     self.username = username
     self.loggedin = loggedin
Example #34
0
 def specific_info(self):
     return 'Task: %s (ID %d)\nFile: %s\n' % \
         (self.task[1], self.task[0], self.filename) + \
         GenericRequest.specific_info(self)
Example #35
0
 def test_success(self):
     if not GenericRequest.test_success(self):
         return False
     if self.redirected_to != './':
         return False
     return True
Example #36
0
    def test_success(self):
        if not GenericRequest.test_success(self):
            return False

        return self.get_submission_id() is not None
Example #37
0
 def specific_info(self):
     return 'Username: %s\nPassword: %s\n' % \
            (self.username, self.password) + \
         GenericRequest.specific_info(self)
Example #38
0
 def prepare(self):
     GenericRequest.prepare(self)
Example #39
0
 def __init__(self, browser, user_test_id, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.user_test_id = user_test_id
     self.url = "%suser_test/%s" % (self.base_url, user_test_id)
Example #40
0
 def specific_info(self):
     return 'Task: %s (ID %d)\nSubmission: %s\n' % \
         (self.task[1], self.task[0], self.submission_num) + \
         GenericRequest.specific_info(self)
Example #41
0
 def __init__(self, browser, task_id, language_code, base_url=None):
     GenericRequest.__init__(self, browser, base_url)
     self.url = "%stasks/%s/statements/%s" % (self.base_url,
                                              task_id, language_code)
     self.task_id = task_id
Example #42
0
 def _prepare(self):
     GenericRequest._prepare(self)
     self.files = list(zip(self.submission_format, self.filenames))