import time
import urlparse
-from tornado.escape import utf8
+from tornado.escape import utf8, native_str
from tornado import httputil
from tornado import ioloop
from tornado import iostream
self._start_time = time.time()
self._finish_time = None
- scheme, netloc, path, query, fragment = urlparse.urlsplit(uri)
+ scheme, netloc, path, query, fragment = urlparse.urlsplit(native_str(uri))
self.path = path
self.query = query
arguments = parse_qs(query)
self.assertEqual(u"\u00e1", data["argument"])
self.assertEqual(u"\u00f3", data["filename"])
self.assertEqual(u"\u00fa", data["filebody"])
-
+
+class EchoHandler(RequestHandler):
+ def get(self):
+ self.write(self.request.arguments)
+
+class HTTPServerTest(AsyncHTTPTestCase, LogTrapTestCase):
+ def get_app(self):
+ return Application([("/echo", EchoHandler)])
+
+ def test_query_string_encoding(self):
+ response = self.fetch("/echo?foo=%C3%A9")
+ data = json_decode(response.body)
+ self.assertEqual(data, {u"foo": [u"\u00e9"]})