Merge "utils: allow to encode params with list/tuple"

This commit is contained in:
Jenkins 2016-04-19 06:25:23 +00:00 committed by Gerrit Code Review
commit 417bbc3a91
2 changed files with 17 additions and 3 deletions

View File

@ -96,3 +96,10 @@ class SearchQueryBuilderTest(base.BaseTestCase):
{"start": "2016-02-10T13:54:53+00:00",
"stop": "2016-02-10T13:56:42+02:00"}),
expected)
self.assertEqual(
"groupby=foo&groupby=bar",
utils.dict_to_querystring({
"groupby": ["foo", "bar"]
}),
)

View File

@ -176,9 +176,16 @@ def dict_from_parsed_args(parsed_args, attrs):
def dict_to_querystring(objs):
return "&".join(["%s=%s" % (k, urllib_parse.quote(six.text_type(v)))
for k, v in objs.items()
if v is not None])
strings = []
for k, values in objs.items():
if values:
if not isinstance(values, (list, tuple)):
values = [values]
strings.append("&".join(
("%s=%s" % (k, v)
for v in map(urllib_parse.quote,
map(six.text_type, values)))))
return "&".join(strings)
# uuid5 namespace for id transformation.