@@ -291,14 +291,14 @@ class MockEnum(Enum):
291291 VALUE2 = "value2"
292292
293293
294- class NestedModel (BaseModel ):
294+ class NestedModel (DataModel ):
295295 """Nested model for testing"""
296296
297297 name : str
298298 value : int
299299
300300
301- class ComplexModel (BaseModel ):
301+ class ComplexModel (DataModel ):
302302 """Complex model for testing"""
303303
304304 name : str
@@ -307,13 +307,27 @@ class ComplexModel(BaseModel):
307307 enum_field : MockEnum
308308
309309
310- class ComplexParentModel (BaseModel ):
310+ class ComplexParentModel (DataModel ):
311311 """Multi-level model for testing"""
312312
313313 name : str
314314 child : ComplexModel
315315
316316
317+ class NonDataModel (BaseModel ):
318+ """BaseModel (not DataModel) for testing that names are not extracted from non-DataModel objects"""
319+
320+ name : str
321+ value : int
322+
323+
324+ class ModelWithNonDataModelChild (DataModel ):
325+ """DataModel containing a non-DataModel child"""
326+
327+ name : str
328+ non_data_child : NonDataModel
329+
330+
317331class TestRecursiveGetAllNames (unittest .TestCase ):
318332 """Tests for recursive_get_all_names function"""
319333
@@ -380,6 +394,13 @@ def test_multi_level(self):
380394 result = recursive_get_all_names (parent_model )
381395 self .assertEqual (result , ["parent_name" , "complex_name" , "nested_name" ])
382396
397+ def test_non_data_model_child_ignored (self ):
398+ """Test that names from non-DataModel objects (without object_type) are not extracted"""
399+ non_data_child = NonDataModel (name = "should_be_ignored" , value = 42 )
400+ model = ModelWithNonDataModelChild (name = "parent_name" , non_data_child = non_data_child )
401+ result = recursive_get_all_names (model )
402+ self .assertEqual (result , ["parent_name" ])
403+
383404
384405class TestRecursiveCheckPaths (unittest .TestCase ):
385406 """Tests for recursive_check_paths function"""
0 commit comments