Skip to content

Commit

Permalink
fix parameters_to_url_query returns booleans with upper letter (#16947)
Browse files Browse the repository at this point in the history
* chore: add test to show python bool url params are not lower case

* fix: python parameters_to_url_query template to properly detect booleans

* fix: typo in test

* fix: typo in test

* chore: update test name to snake case and be more descriptive
  • Loading branch information
mhaley-tignis authored Nov 1, 2023
1 parent 8893c71 commit a4267ee
Show file tree
Hide file tree
Showing 13 changed files with 34 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -567,10 +567,10 @@ class ApiClient:
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -481,10 +481,10 @@ class ApiClient:
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params:
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -476,10 +476,10 @@ def parameters_to_url_query(self, params, collection_formats):
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params:
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -529,10 +529,10 @@ def parameters_to_url_query(self, params, collection_formats):
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,11 @@ def testAuthHttpBasic(self):
self.assertTrue("Authorization" in e.headers)
self.assertEqual(e.headers["Authorization"], "Basic dGVzdF91c2VybmFtZTp0ZXN0X3Bhc3N3b3Jk")

def test_parameters_to_url_query_boolean_value(self):
client = openapi_client.ApiClient()
params = client.parameters_to_url_query([("boolean", True),], {})
self.assertEqual(params, "boolean=true")

def echoServerResponseParaserTest(self):
s = """POST /echo/body/Pet/response_string HTTP/1.1
Host: localhost:3000
Expand Down
4 changes: 2 additions & 2 deletions samples/client/echo_api/python/openapi_client/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -476,10 +476,10 @@ def parameters_to_url_query(self, params, collection_formats):
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params:
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
5 changes: 5 additions & 0 deletions samples/client/echo_api/python/test/test_manual.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,11 @@ def test_from_to_methods(self):
self.assertEqual(pet2.tags[0].name, "None")
self.assertEqual(pet2.category.id, 1)

def test_parameters_to_url_query_boolean_value(self):
client = openapi_client.ApiClient()
params = client.parameters_to_url_query([("boolean", True),], {})
self.assertEqual(params, "boolean=true")

def echoServerResponseParaserTest(self):
s = """POST /echo/body/Pet/response_string HTTP/1.1
Host: localhost:3000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -483,10 +483,10 @@ def parameters_to_url_query(self, params, collection_formats):
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params:
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -499,10 +499,10 @@ def parameters_to_url_query(self, params, collection_formats):
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -528,10 +528,10 @@ def parameters_to_url_query(self, params, collection_formats):
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -257,5 +257,6 @@ def test_parameters_to_url_query(self):
result = self.api_client.parameters_to_url_query([('value', dictionary)], {})
self.assertEqual(result, 'value=%7B%22strValues%22%3A%20%5B%22one%22%2C%20%22two%22%2C%20%22three%22%5D%2C%20%22dictValues%22%3A%20%5B%7B%22name%22%3A%20%22value1%22%2C%20%22age%22%3A%2014%7D%2C%20%7B%22name%22%3A%20%22value2%22%2C%20%22age%22%3A%2012%7D%5D%7D')



def test_parameters_to_url_query_boolean_value(self):
result = self.api_client.parameters_to_url_query([('boolean', True)], {})
self.assertEqual(result, "boolean=true")
Original file line number Diff line number Diff line change
Expand Up @@ -475,10 +475,10 @@ def parameters_to_url_query(self, params, collection_formats):
if collection_formats is None:
collection_formats = {}
for k, v in params.items() if isinstance(params, dict) else params:
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, bool):
v = str(v).lower()
if isinstance(v, (int, float)):
v = str(v)
if isinstance(v, dict):
v = json.dumps(v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,5 +243,6 @@ def test_parameters_to_url_query(self):
result = self.api_client.parameters_to_url_query([('value', dictionary)], {})
self.assertEqual(result, 'value=%7B%22strValues%22%3A%20%5B%22one%22%2C%20%22two%22%2C%20%22three%22%5D%2C%20%22dictValues%22%3A%20%5B%7B%22name%22%3A%20%22value1%22%2C%20%22age%22%3A%2014%7D%2C%20%7B%22name%22%3A%20%22value2%22%2C%20%22age%22%3A%2012%7D%5D%7D')



def test_parameters_to_url_query_boolean_value(self):
result = self.api_client.parameters_to_url_query([('boolean', True)], {})
self.assertEqual(result, "boolean=true")

0 comments on commit a4267ee

Please sign in to comment.