diff --git a/slack_sdk/scim/v1/internal_utils.py b/slack_sdk/scim/v1/internal_utils.py index cbb90dd72..8e658aac6 100644 --- a/slack_sdk/scim/v1/internal_utils.py +++ b/slack_sdk/scim/v1/internal_utils.py @@ -108,7 +108,7 @@ def _convert_dict_keys( ) result_dict[new_key].append(new_element) else: - result_dict[new_key].append(_create_copy(original_value)) + result_dict[new_key].append(_create_copy(element)) else: result_dict[new_key] = _create_copy(original_value) return result_dict diff --git a/tests/slack_sdk/scim/test_internals.py b/tests/slack_sdk/scim/test_internals.py index d0a27b17b..d1ddca1bb 100644 --- a/tests/slack_sdk/scim/test_internals.py +++ b/tests/slack_sdk/scim/test_internals.py @@ -16,3 +16,9 @@ def test_snake_cased(self): result = _to_snake_cased(json.loads(response_body)) self.assertEqual(result["start_index"], 1) self.assertIsNotNone(result["resources"][0]["id"]) + + def test_snake_cased_list_of_strings(self): + body = {"schemas": ["urn:a", "urn:b"], "emails": [{"primaryValue": "x"}]} + result = _to_snake_cased(body) + self.assertEqual(result["schemas"], ["urn:a", "urn:b"]) + self.assertEqual(result["emails"], [{"primary_value": "x"}])