Merge "limit split of URL query params name-value pairs"

This commit is contained in:
Jenkins
2016-01-23 01:22:14 +00:00
committed by Gerrit Code Review
2 changed files with 35 additions and 2 deletions

View File

@@ -90,3 +90,36 @@ class TestGetQueryDimension(unittest.TestCase):
self.assertRaises(
HTTPUnprocessableEntityError, helpers.get_query_dimensions, req)
class TestGetOldQueryParams(unittest.TestCase):
def test_old_query_params(self):
uri = Mock()
uri.query = "foo=bar&spam=ham"
result = helpers._get_old_query_params(uri)
self.assertEqual(result, ["foo=bar", "spam=ham"])
def test_old_query_params_with_equals(self):
uri = Mock()
uri.query = "foo=spam=ham"
result = helpers._get_old_query_params(uri)
self.assertEqual(result, ["foo=spam%3Dham"])
def test_old_query_params_except_offset(self):
uri = Mock()
uri.query = "foo=bar&spam=ham"
result = []
helpers._get_old_query_params_except_offset(result, uri)
self.assertEqual(result, ["foo=bar", "spam=ham"])
def test_old_query_params_except_offset_with_equals(self):
uri = Mock()
uri.query = "foo=spam=ham&offset=bar"
result = []
helpers._get_old_query_params_except_offset(result, uri)
self.assertEqual(result, ["foo=spam%3Dham"])

View File

@@ -400,7 +400,7 @@ def _get_old_query_params(parsed_uri):
if parsed_uri.query:
for query_param in parsed_uri.query.split('&'):
query_param_name, query_param_val = query_param.split('=')
query_param_name, query_param_val = query_param.split('=', 1)
old_query_params.append(urlparse.quote(
query_param_name.encode('utf8'), safe='')
@@ -414,7 +414,7 @@ def _get_old_query_params_except_offset(new_query_params, parsed_uri):
if parsed_uri.query:
for query_param in parsed_uri.query.split('&'):
query_param_name, query_param_val = query_param.split('=')
query_param_name, query_param_val = query_param.split('=', 1)
if query_param_name.lower() != 'offset':
new_query_params.append(urlparse.quote(
query_param_name.encode(