from monday_com_orca_backend.utils import generic class TestLowercaseKeys: def test_flat_dict(self): input_data = {"Name": "Alice", "Age": 30} expected = {"name": "Alice", "age": 30} assert generic.lowercase_keys(input_data) == expected def test_nested_dict(self): input_data = {"User": {"Name": "Bob", "Email": "bob@example.com"}} expected = {"user": {"name": "Bob", "email": "bob@example.com"}} assert generic.lowercase_keys(input_data) == expected def test_list_of_dicts(self): input_data = [{"Name": "Alice"}, {"Age": 30}] expected = [{"name": "Alice"}, {"age": 30}] assert generic.lowercase_keys(input_data) == expected def test_dict_with_list_of_dicts(self): input_data = {"Users": [{"Name": "Alice"}, {"Name": "Bob"}]} expected = {"users": [{"name": "Alice"}, {"name": "Bob"}]} assert generic.lowercase_keys(input_data) == expected def test_mixed_types(self): input_data = { "Name": "Charlie", "Attributes": {"Height": 180, "Hobbies": ["Running", "Reading"]}, } expected = { "name": "Charlie", "attributes": {"height": 180, "hobbies": ["Running", "Reading"]}, } assert generic.lowercase_keys(input_data) == expected def test_non_dict_or_list_input(self): input_data = "JustAString" expected = "JustAString" assert generic.lowercase_keys(input_data) == expected