Skip to content

Commit e67ac04

Browse files
committed
Test union fields
1 parent a58c945 commit e67ac04

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

tests/contrib/test_pydantic.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
425443
class 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

Comments
 (0)