@@ -422,6 +422,24 @@ def make_generic_string_object() -> GenericModel[str]:
422422 )
423423
424424
425+ class UnionModel (BaseModel ):
426+ simple_union_field : Union [str , int ]
427+ proxied_union_field : Union [datetime , Path ]
428+
429+ def _check_instance (self ) -> None :
430+ assert isinstance (self .simple_union_field , str )
431+ assert self .simple_union_field == "string_or_int"
432+ assert isinstance (self .proxied_union_field , Path )
433+ assert self .proxied_union_field == Path ("test/path" )
434+
435+
436+ def make_union_object () -> UnionModel :
437+ return UnionModel (
438+ simple_union_field = "string_or_int" ,
439+ proxied_union_field = Path ("test/path" ),
440+ )
441+
442+
425443class PydanticDatetimeModel (BaseModel ):
426444 datetime_field : datetime
427445 datetime_field_assigned_field : datetime = Field ()
@@ -562,6 +580,7 @@ def make_pydantic_timedelta_object() -> PydanticTimedeltaModel:
562580 FieldFeaturesModel ,
563581 AnnotatedFieldsModel ,
564582 GenericModel [Any ],
583+ UnionModel ,
565584 PydanticDatetimeModel ,
566585 PydanticDateModel ,
567586 PydanticTimedeltaModel ,
@@ -592,6 +611,7 @@ def make_list_of_pydantic_objects() -> List[PydanticModels]:
592611 make_field_features_object (),
593612 make_annotated_fields_object (),
594613 make_generic_string_object (),
614+ make_union_object (),
595615 make_pydantic_datetime_object (),
596616 make_pydantic_date_object (),
597617 make_pydantic_timedelta_object (),
0 commit comments