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:
Ayumu Ueha 2022-04-20 08:39:42 +00:00
parent e293de0876
commit 5c8051d4d3
2 changed files with 27 additions and 3 deletions

View File

@ -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

View File

@ -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):