1+ import json
12from dataclasses import dataclass
23from unittest .mock import MagicMock
34
@@ -140,7 +141,7 @@ class SampleModel(CamelModel):
140141 model = SampleModel (team_id = 42 )
141142 result = model .to_json ()
142143
143- assert result == ' {"teamId":42}'
144+ assert json . loads ( result ) == {"teamId" : 42 }
144145
145146 def test_to_json_with_indent (self ):
146147 """to_json with indent should format output."""
@@ -151,22 +152,34 @@ class SampleModel(CamelModel):
151152 model = SampleModel (team_id = 42 )
152153 result = model .to_json (indent = 2 )
153154
154- assert ' "teamId": 42' in result
155+ assert json . loads ( result ) == { "teamId" : 42 }
155156 assert "\n " in result
156157
157- def test_to_yaml_import_error (self ):
158- """to_yaml should raise ImportError if PyYAML is not installed."""
159- import sys
160- from unittest .mock import patch
158+ def test_to_yaml_default (self ):
159+ """to_yaml should export as YAML string with camelCase keys."""
160+
161+ class SampleModel (CamelModel ):
162+ team_id : int
163+ user_name : str
164+
165+ model = SampleModel (team_id = 1 , user_name = "test" )
166+ result = model .to_yaml ()
167+
168+ assert "teamId: 1" in result
169+ assert "userName: test" in result
170+
171+ def test_to_yaml_snake_case (self ):
172+ """to_yaml with by_alias=False should use snake_case keys."""
161173
162174 class SampleModel (CamelModel ):
163175 team_id : int
164176
165177 model = SampleModel (team_id = 1 )
178+ result = model .to_yaml (by_alias = False )
179+
180+ assert "team_id: 1" in result
181+
166182
167- with patch .dict (sys .modules , {"yaml" : None }):
168- with pytest .raises (ImportError , match = "PyYAML is required" ):
169- model .to_yaml ()
170183class TestResourceList :
171184 def test_create_with_list (self ):
172185 """ResourceList should be created with a list of items."""
@@ -267,7 +280,7 @@ class Item(CamelModel):
267280 resource_list = ResourceList [Item ](root = items )
268281 result = resource_list .to_json ()
269282
270- assert result == ' [{"itemId": 1}, {"itemId": 2}]'
283+ assert json . loads ( result ) == [{"itemId" : 1 }, {"itemId" : 2 }]
271284
272285 def test_to_json_with_indent (self ):
273286 """to_json with indent should format output."""
@@ -293,6 +306,19 @@ class Item(CamelModel):
293306
294307 assert result == []
295308
309+ def test_to_yaml_default (self ):
310+ """to_yaml should export as YAML string."""
311+
312+ class Item (CamelModel ):
313+ item_id : int
314+
315+ items = [Item (item_id = 1 ), Item (item_id = 2 )]
316+ resource_list = ResourceList [Item ](root = items )
317+ result = resource_list .to_yaml ()
318+
319+ assert "itemId: 1" in result
320+ assert "itemId: 2" in result
321+
296322
297323class TestResourceBase :
298324 def test_initialization_with_http_client (self ):
0 commit comments