]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Do not remove empty GET/POST parameters
authorYusuf Simonson <simonson@gmail.com>
Thu, 16 Aug 2012 00:54:56 +0000 (17:54 -0700)
committerYusuf Simonson <simonson@gmail.com>
Thu, 16 Aug 2012 00:54:56 +0000 (17:54 -0700)
tornado/httpserver.py
tornado/test/httpserver_test.py

index 952a6a26815485fb0539d16f1548668d775ec08a..67b1015767536689cb609fadfa106898124d3979 100644 (file)
@@ -382,12 +382,7 @@ class HTTPRequest(object):
         self._finish_time = None
 
         self.path, sep, self.query = uri.partition('?')
-        arguments = parse_qs_bytes(self.query)
-        self.arguments = {}
-        for name, values in arguments.iteritems():
-            values = [v for v in values if v]
-            if values:
-                self.arguments[name] = values
+        self.arguments = parse_qs_bytes(self.query, keep_blank_values=True)
 
     def supports_http_1_1(self):
         """Returns True if this request supports HTTP/1.1 semantics"""
index e9078da2801d7492f7b2f51e8ce15543d6bc8184..76242e80687bf25b3e5338abcedb9282863e5257 100644 (file)
@@ -300,6 +300,11 @@ class HTTPServerTest(AsyncHTTPTestCase, LogTrapTestCase):
         data = json_decode(response.body)
         self.assertEqual(data, {u"foo": [u"\u00e9"]})
 
+    def test_empty_query_string(self):
+        response = self.fetch("/echo?foo=&foo=")
+        data = json_decode(response.body)
+        self.assertEqual(data, {u"foo": [u"", u""]})
+
     def test_types(self):
         headers = {"Cookie": "foo=bar"}
         response = self.fetch("/typecheck?foo=bar", headers=headers)