forked from loafle/openapi-generator-original
Fix parameters_to_url_query doesn't properly convert lists to string (#17592)
* fix parameters_to_url_query to properly handle lists * fix query parameters bug in sample clients * add tests for url query list value * build project * tests fix * Revert "build project" This reverts commit a486a6de7528302db92c36e64dcd20d41ada51b9.
This commit is contained in:
parent
b01b182af6
commit
406bc28a3d
@ -577,7 +577,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -491,7 +491,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -484,7 +484,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -539,7 +539,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -149,6 +149,12 @@ class TestManual(unittest.TestCase):
|
||||
client = openapi_client.ApiClient()
|
||||
params = client.parameters_to_url_query([("boolean", True),], {})
|
||||
self.assertEqual(params, "boolean=true")
|
||||
|
||||
def test_parameters_to_url_query_list_value(self):
|
||||
client = openapi_client.ApiClient()
|
||||
params = client.parameters_to_url_query(params=[('list', [1, 2, 3])], collection_formats={'list': 'multi'})
|
||||
self.assertEqual(params, "list=1&list=2&list=3")
|
||||
|
||||
|
||||
def echoServerResponseParaserTest(self):
|
||||
s = """POST /echo/body/Pet/response_string HTTP/1.1
|
||||
|
@ -484,7 +484,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -224,7 +224,12 @@ class TestManual(unittest.TestCase):
|
||||
client = openapi_client.ApiClient()
|
||||
params = client.parameters_to_url_query([("boolean", True),], {})
|
||||
self.assertEqual(params, "boolean=true")
|
||||
|
||||
|
||||
def test_parameters_to_url_query_list_value(self):
|
||||
client = openapi_client.ApiClient()
|
||||
params = client.parameters_to_url_query(params=[('list', [1, 2, 3])], collection_formats={'list': 'multi'})
|
||||
self.assertEqual(params, "list=1&list=2&list=3")
|
||||
|
||||
def echoServerResponseParaserTest(self):
|
||||
s = """POST /echo/body/Pet/response_string HTTP/1.1
|
||||
Host: localhost:3000
|
||||
|
@ -486,7 +486,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -509,7 +509,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -538,7 +538,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -260,3 +260,7 @@ class ApiClientTests(unittest.TestCase):
|
||||
def test_parameters_to_url_query_boolean_value(self):
|
||||
result = self.api_client.parameters_to_url_query([('boolean', True)], {})
|
||||
self.assertEqual(result, "boolean=true")
|
||||
|
||||
def test_parameters_to_url_query_list_value(self):
|
||||
params = self.api_client.parameters_to_url_query(params=[('list', [1, 2, 3])], collection_formats={'list': 'multi'})
|
||||
self.assertEqual(params, "list=1&list=2&list=3")
|
||||
|
@ -483,7 +483,7 @@ class ApiClient:
|
||||
if k in collection_formats:
|
||||
collection_format = collection_formats[k]
|
||||
if collection_format == 'multi':
|
||||
new_params.extend((k, value) for value in v)
|
||||
new_params.extend((k, str(value)) for value in v)
|
||||
else:
|
||||
if collection_format == 'ssv':
|
||||
delimiter = ' '
|
||||
|
@ -245,3 +245,7 @@ class ApiClientTests(unittest.TestCase):
|
||||
def test_parameters_to_url_query_boolean_value(self):
|
||||
result = self.api_client.parameters_to_url_query([('boolean', True)], {})
|
||||
self.assertEqual(result, "boolean=true")
|
||||
|
||||
def test_parameters_to_url_query_list_value(self):
|
||||
params = self.api_client.parameters_to_url_query(params=[('list', [1, 2, 3])], collection_formats={'list': 'multi'})
|
||||
self.assertEqual(params, "list=1&list=2&list=3")
|
||||
|
Loading…
x
Reference in New Issue
Block a user