From cbdd7fa1c14e1c9687fabb8ea6e2869b481e77a8 Mon Sep 17 00:00:00 2001 From: Alex Castillo Date: Sat, 14 Nov 2026 14:35:12 -0400 Subject: [PATCH] fix(scim): keep list-of-strings values flat when converting response keys --- slack_sdk/scim/v1/internal_utils.py | 2 +- tests/slack_sdk/scim/test_internals.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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"}])