示例#1
0
 def test_url_escape_quote_plus(self):
     unescaped = '+ #%'
     plus_escaped = '%2B+%23%25'
     escaped = '%2B%20%23%25'
     self.assertEqual(url_escape(unescaped), plus_escaped)
     self.assertEqual(url_escape(unescaped, plus=False), escaped)
     self.assertEqual(url_unescape(plus_escaped), unescaped)
     self.assertEqual(url_unescape(escaped, plus=False), unescaped)
     self.assertEqual(url_unescape(plus_escaped, encoding=None),
                      utf8(unescaped))
     self.assertEqual(url_unescape(escaped, encoding=None, plus=False),
                      utf8(unescaped))
示例#2
0
    def test_url_escape_unicode(self):
        tests = [
            # byte strings are passed through as-is
            (u'\u00e9'.encode('utf8'), '%C3%A9'),
            (u'\u00e9'.encode('latin1'), '%E9'),

            # unicode strings become utf8
            (u'\u00e9', '%C3%A9'),
        ]
        for unescaped, escaped in tests:
            self.assertEqual(url_escape(unescaped), escaped)
示例#3
0
 def reverse(self, *args):
     if self._path is None:
         raise ValueError("Cannot reverse url regex " + self.regex.pattern)
     assert len(args) == self._group_count, "required number of arguments " \
                                            "not found"
     if not len(args):
         return self._path
     converted_args = []
     for a in args:
         if not isinstance(a, (unicode_type, bytes)):
             a = str(a)
         converted_args.append(url_escape(utf8(a), plus=False))
     return self._path % tuple(converted_args)
示例#4
0
 def test_task_handler(self):
     response = self.fetch('/task?url=%s' %
                           url_escape(self.get_url('/sequence')))
     self.assertEqual(response.body, b"got response: 123")