Ejemplo n.º 1
0
    def get_wsgi_environ(self):
        if not self.__on_headers_complete:
            return None

        environ = self._environ.copy()
        # clean special keys
        for key in ("CONTENT_LENGTH", "CONTENT_TYPE", "SCRIPT_NAME"):
            hkey = "HTTP_%s" % key
            if hkey in environ:
                environ[key] = environ.pop(hkey)

        script_name = environ.get('SCRIPT_NAME',
                os.environ.get("SCRIPT_NAME", ""))
        if script_name:
            path_info = self._path.split(script_name, 1)[1]
            environ.update({
                "PATH_INFO": unquote(path_info),
                "SCRIPT_NAME": script_name})
        else:
            environ['SCRIPT_NAME'] = ""

        if environ.get('HTTP_X_FORWARDED_PROTOCOL', '').lower() == "ssl":
            environ['wsgi.url_scheme'] = "https"
        elif environ.get('HTTP_X_FORWARDED_SSL', '').lower() == "on":
            environ['wsgi.url_scheme'] = "https"
        else:
            environ['wsgi.url_scheme'] = "http"

        return environ
Ejemplo n.º 2
0
    def get_wsgi_environ(self):
        if not self.__on_headers_complete:
            return None

        environ = self._environ.copy()
        # clean special keys
        for key in ("CONTENT_LENGTH", "CONTENT_TYPE", "SCRIPT_NAME"):
            hkey = "HTTP_%s" % key
            if hkey in environ:
                environ[key] = environ.pop(hkey)

        script_name = environ.get('SCRIPT_NAME',
                                  os.environ.get("SCRIPT_NAME", ""))
        if script_name:
            path_info = self._path.split(script_name, 1)[1]
            environ.update({
                "PATH_INFO": unquote(path_info),
                "SCRIPT_NAME": script_name})
        else:
            environ['SCRIPT_NAME'] = ""

        if environ.get('HTTP_X_FORWARDED_PROTOCOL', '').lower() == "ssl":
            environ['wsgi.url_scheme'] = "https"
        elif environ.get('HTTP_X_FORWARDED_SSL', '').lower() == "on":
            environ['wsgi.url_scheme'] = "https"
        else:
            environ['wsgi.url_scheme'] = "http"

        return environ
Ejemplo n.º 3
0
def decode_email_header(header, charset="utf8"):
    """
    returns an email header as a unquoted unicode string
    """
    dec = email.header.decode_header(header)[0]
    hdr = dec[0]
    if dec[1] is not None:
        hdr = hdr.dec[1]
    return unquote(hdr)
Ejemplo n.º 4
0
Archivo: peer.py Proyecto: kq2/Ricin
def _download_assesment(course, url, folder):
    url = "{}/data/export/{}".format(course.get_url(), url)
    temp = "temp.html"
    util.download(url, temp, course.get_cookie_file())

    page = util.read_file(temp)
    util.remove(temp)

    pattern = r"<tbody>.*?</tbody>"
    table = re.findall(pattern, page, re.DOTALL)[-1]

    pattern = r'<td colspan="2">(.*?)</td>.*?<a href="(.*?/export/(.*?)\?.*?)">Download</a>'
    for tr_match in re.finditer(r"<tr>.*?</tr>", table, re.DOTALL):
        for match in re.finditer(pattern, tr_match.group(0), re.DOTALL):
            name = match.group(1).replace("&quot;", "").replace(":", "")
            name = name.replace("&lt;em&gt;", "")
            name = name.replace("&lt;/em&gt;", "")
            url = match.group(2)
            file_name = util.unquote(match.group(3))

            path = u"{}/peer_assessment/{}/{} {}".format(course.get_folder(), folder, name, file_name)
            util.download(url, path, course.get_cookie_file(), resume=True)
Ejemplo n.º 5
0
  def test_1_tagedit_delete(self):
    self.open_test_user()
    if not self.b.supports_alert:
      self.js('window.confirm=function(){return true}')

    del_btn = self.find_tag_editable('input.pp-remove-tag')
    tags = self.get_tags()

    tagid = int(del_btn.get_attribute('data-pp-tag-id'))
    tag = self.js('return document.getElementById("tag%d").textContent' % tagid)
    tag = util.unquote(tag)
    self.assertTrue(tag)
    self.assertIn(tag, tags)

    self.click(del_btn)
    if self.b.supports_alert:
      self.alert_accept()

    self.js('pixplus.popup.tagedit.end()')
    self.popup_wait_load()

    tags.remove(tag)
    self.popup_poll_reload(lambda: self.get_tags() == tags)
Ejemplo n.º 6
0
    def test_1_tagedit_delete(self):
        self.open_test_user()
        if not self.b.supports_alert:
            self.js('window.confirm=function(){return true}')

        del_btn = self.find_tag_editable('input.pp-remove-tag')
        tags = self.get_tags()

        tagid = int(del_btn.get_attribute('data-pp-tag-id'))
        tag = self.js('return document.getElementById("tag%d").textContent' %
                      tagid)
        tag = util.unquote(tag)
        self.assertTrue(tag)
        self.assertIn(tag, tags)

        self.click(del_btn)
        if self.b.supports_alert:
            self.alert_accept()

        self.js('pixplus.popup.tagedit.end()')
        self.popup_wait_load()

        tags.remove(tag)
        self.popup_poll_reload(lambda: self.get_tags() == tags)
Ejemplo n.º 7
0
 def testUnquote(self):
     for string, expected in strings.iteritems():
         result = unquote(string)
         self.assert_(result == expected,
                      '%s is %s' % (string, result))