Skip to content

Commit

Permalink
Merge remote-tracking branch 'norman-labs/branch2.4'
Browse files Browse the repository at this point in the history
Conflicts:
	tornado/httputil.py
  • Loading branch information
bdarnell committed Mar 15, 2013
2 parents 330d8ec + c791984 commit ae166d7
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
2 changes: 2 additions & 0 deletions tornado/httputil.py
Expand Up @@ -236,6 +236,8 @@ def parse_body_arguments(content_type, body, arguments, files):
uri_arguments = parse_qs_bytes(native_str(body)) uri_arguments = parse_qs_bytes(native_str(body))
for name, values in uri_arguments.items(): for name, values in uri_arguments.items():
values = [v for v in values if v] values = [v for v in values if v]
uri_arguments = parse_qs_bytes(native_str(body), keep_blank_values=True)
for name, values in uri_arguments.items():
if values: if values:
arguments.setdefault(name, []).extend(values) arguments.setdefault(name, []).extend(values)
elif content_type.startswith("multipart/form-data"): elif content_type.startswith("multipart/form-data"):
Expand Down
7 changes: 7 additions & 0 deletions tornado/test/httpserver_test.py
Expand Up @@ -258,6 +258,8 @@ class EchoHandler(RequestHandler):
def get(self): def get(self):
self.write(recursive_unicode(self.request.arguments)) self.write(recursive_unicode(self.request.arguments))


def post(self):
self.write(recursive_unicode(self.request.arguments))


class TypeCheckHandler(RequestHandler): class TypeCheckHandler(RequestHandler):
def prepare(self): def prepare(self):
Expand Down Expand Up @@ -316,6 +318,11 @@ def test_empty_query_string(self):
data = json_decode(response.body) data = json_decode(response.body)
self.assertEqual(data, {u("foo"): [u(""), u("")]}) self.assertEqual(data, {u("foo"): [u(""), u("")]})


def test_empty_post_parameters(self):
response = self.fetch("/echo", method="POST", body="foo=&bar=")
data = json_decode(response.body)
self.assertEqual(data, {u("foo"): [u("")], u("bar"): [u("")]})

def test_types(self): def test_types(self):
headers = {"Cookie": "foo=bar"} headers = {"Cookie": "foo=bar"}
response = self.fetch("/typecheck?foo=bar", headers=headers) response = self.fetch("/typecheck?foo=bar", headers=headers)
Expand Down

0 comments on commit ae166d7

Please sign in to comment.