@@ -459,6 +459,37 @@ def test_execute_multi_module_no_models() -> None:
459459 assert models == {}
460460
461461
462+ def test_multiple_aliases_required_field () -> None :
463+ """Test dynamic models with multiple aliases on required fields. (#2989)."""
464+ schema = make_object_schema ({"name" : {"type" : "string" }}, required = ["name" ])
465+ config = GenerateConfig (
466+ input_file_type = InputFileType .JsonSchema ,
467+ output_model_type = DataModelType .PydanticV2BaseModel ,
468+ aliases = {"name" : ["full_name" , "customer_name" ]},
469+ class_name = "Customer" ,
470+ )
471+ assert_dynamic_models (
472+ schema ,
473+ {"Customer" : {"name" : "John" }},
474+ EXPECTED_PATH / "multiple_aliases_required.json" ,
475+ config = config ,
476+ )
477+
478+
479+ def test_multiple_aliases_required_field_code_output () -> None :
480+ """Test generated code includes Field import with multiple aliases on required fields. (#2989)."""
481+ schema = make_object_schema ({"name" : {"type" : "string" }}, required = ["name" ])
482+ config = GenerateConfig (
483+ input_file_type = InputFileType .JsonSchema ,
484+ output_model_type = DataModelType .PydanticV2BaseModel ,
485+ aliases = {"name" : ["full_name" , "customer_name" ]},
486+ class_name = "Customer" ,
487+ )
488+ result = generate (input_ = schema , config = config )
489+ assert isinstance (result , str )
490+ assert_output (result , EXPECTED_PATH / "multiple_aliases_required_code.py" )
491+
492+
462493def test_execute_multi_module_enum_only () -> None :
463494 """Test _execute_multi_module with enum only to cover non-BaseModel branch."""
464495 from datamodel_code_generator .dynamic import _execute_multi_module
0 commit comments