diff --git a/tests/tests.py b/tests/tests.py index 292a65006..64d80c1c0 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -2732,6 +2732,19 @@ def test_unsupported_version_error(self, *_): reload(zappa) + def test_wsgi_query_string_unquoted(self): + event = { + "body": {}, + "headers": {}, + "pathParameters": {}, + "path": "/path/path1", + "httpMethod": "GET", + "queryStringParameters": {"a": "A,B", "b": "C#D"}, + "requestContext": {}, + } + request = create_wsgi_request(event) + self.assertEqual(request["QUERY_STRING"], "a=A,B&b=C#D") + if __name__ == "__main__": unittest.main() diff --git a/zappa/wsgi.py b/zappa/wsgi.py index e8c21a8f5..3325cd0bc 100644 --- a/zappa/wsgi.py +++ b/zappa/wsgi.py @@ -45,6 +45,7 @@ def create_wsgi_request( else: query = event_info.get("queryStringParameters", {}) query_string = urlencode(query) if query else "" + query_string = urls.url_unquote(query_string) if context_header_mappings: for key, value in context_header_mappings.items():