Skip to content

Commit c372eaa

Browse files
committed
fix(scim): keep lists of plain values flat in snake_cased_body
_convert_dict_keys appended a copy of the whole list for every element of a list that does not hold dicts, so a value like schemas: ["a", "b"] became [["a", "b"], ["a", "b"]]. Append a copy of each element instead.
1 parent 1fe0b8e commit c372eaa

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

‎slack_sdk/scim/v1/internal_utils.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def _convert_dict_keys(
108108
)
109109
result_dict[new_key].append(new_element)
110110
else:
111-
result_dict[new_key].append(_create_copy(original_value))
111+
result_dict[new_key].append(_create_copy(element))
112112
else:
113113
result_dict[new_key] = _create_copy(original_value)
114114
return result_dict

‎tests/slack_sdk/scim/test_internals.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,7 @@ def test_snake_cased(self):
1616
result = _to_snake_cased(json.loads(response_body))
1717
self.assertEqual(result["start_index"], 1)
1818
self.assertIsNotNone(result["resources"][0]["id"])
19+
20+
def test_snake_cased_list_of_plain_values(self):
21+
result = _to_snake_cased({"schemas": ["urn:scim:schemas:core:1.0", "urn:scim:schemas:extension:enterprise:1.0"]})
22+
self.assertEqual(result["schemas"], ["urn:scim:schemas:core:1.0", "urn:scim:schemas:extension:enterprise:1.0"])

0 commit comments

Comments
 (0)