Change to not convert additionalParams of V1 API
The value of additionalParams of request or response data that is user-defined data should not be converted during processing. This patch changes to not convert value of additionalParams in request or additional_params in response. Closes-Bug: #1969704 Change-Id: Ie652adc521e2c56e8ea2e43a708c70ac623e17e5
This commit is contained in:
parent
e293de0876
commit
5c8051d4d3
|
@ -355,13 +355,15 @@ def convert_camelcase_to_snakecase(request_data):
|
|||
This method takes care only keys in a `dict` or `dicts in a list`.
|
||||
For simple list with string items, the elements which are actual values
|
||||
are ignored during conversion.
|
||||
And property value is not converted when key is `additionalParams`.
|
||||
|
||||
:param request_data: dict with keys or list with items, in camelCase.
|
||||
"""
|
||||
if isinstance(request_data, dict):
|
||||
new_dict = {}
|
||||
for key, property_value in request_data.items():
|
||||
property_value = convert_camelcase_to_snakecase(property_value)
|
||||
if key != "additionalParams":
|
||||
property_value = convert_camelcase_to_snakecase(property_value)
|
||||
underscore_joined = convert_string_to_snakecase(key)
|
||||
new_dict[underscore_joined] = property_value
|
||||
return new_dict
|
||||
|
@ -386,6 +388,7 @@ def convert_snakecase_to_camelcase(request_data):
|
|||
Also, Snake case is a notation method that uses underscores to connect
|
||||
words. For that reason, if the initial word of the key in dict starts
|
||||
with '_', this function ignore to convert the key.
|
||||
And property value is not converted when key is `additional_params`.
|
||||
|
||||
:param request_data: dict with keys or list with items, in snake_case.
|
||||
|
||||
|
@ -419,7 +422,8 @@ def convert_snakecase_to_camelcase(request_data):
|
|||
if isinstance(request_data, dict):
|
||||
new_dict = {}
|
||||
for key, property_value in request_data.items():
|
||||
property_value = convert_snakecase_to_camelcase(property_value)
|
||||
if key != "additional_params":
|
||||
property_value = convert_snakecase_to_camelcase(property_value)
|
||||
camelcase = key if key.startswith('_') else convert(key)
|
||||
new_dict[camelcase] = property_value
|
||||
return new_dict
|
||||
|
|
|
@ -60,10 +60,19 @@ class TestCamelToSnakeCase(testtools.TestCase):
|
|||
values should be ignored during conversion
|
||||
"""
|
||||
data = ["camelCaseValue1", "camelCaseValue2"]
|
||||
actual_val = utils.convert_snakecase_to_camelcase(data)
|
||||
actual_val = utils.convert_camelcase_to_snakecase(data)
|
||||
expected_val = ["camelCaseValue1", "camelCaseValue2"]
|
||||
self.assertEqual(expected_val, actual_val)
|
||||
|
||||
def test_convert_camelcase_to_snakecase_with_additional_params(self):
|
||||
"""additionalParams value's dict should be not converted."""
|
||||
data = {"additionalParams": {"camelCaseKey": "camelCaseValue"}}
|
||||
actual_val = utils.convert_camelcase_to_snakecase(data)
|
||||
expected_val = {
|
||||
"additional_params": {
|
||||
"camelCaseKey": "camelCaseValue"}}
|
||||
self.assertEqual(expected_val, actual_val)
|
||||
|
||||
|
||||
class TestSnakeToCamelCase(testtools.TestCase):
|
||||
def test_convert_snakecase_to_camelcase_dict(self):
|
||||
|
@ -93,6 +102,17 @@ class TestSnakeToCamelCase(testtools.TestCase):
|
|||
expected_val = ["snake_case_value1", "snake_case_value2"]
|
||||
self.assertEqual(expected_val, actual_val)
|
||||
|
||||
def test_convert_snakecase_to_camelcase_with_additional_params(self):
|
||||
"""additional_params value's dict should be not converted."""
|
||||
data = {
|
||||
"additional_params": {
|
||||
"snake_case_key": "snake_case_value"}}
|
||||
actual_val = utils.convert_snakecase_to_camelcase(data)
|
||||
expected_val = {
|
||||
"additionalParams": {
|
||||
"snake_case_key": "snake_case_value"}}
|
||||
self.assertEqual(expected_val, actual_val)
|
||||
|
||||
|
||||
class TestValidateUrl(testtools.TestCase):
|
||||
def test_valid_url(self):
|
||||
|
|
Loading…
Reference in New Issue