utils: allow to encode params with list/tuple
Change-Id: Ic71d5467f10d8707f6911c9d52c91fda10ce5300
This commit is contained in:
parent
8d0657306a
commit
36fc0bb742
|
@ -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"]
|
||||
}),
|
||||
)
|
||||
|
|
|
@ -147,9 +147,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.
|
||||
|
|
Loading…
Reference in New Issue