(create_module)
| 584 | |
| 585 | |
| 586 | def test_json_encoder_str(create_module): |
| 587 | module = create_module( |
| 588 | # language=Python |
| 589 | """ |
| 590 | from pydantic import BaseModel, ConfigDict, field_serializer |
| 591 | |
| 592 | |
| 593 | class User(BaseModel): |
| 594 | x: str |
| 595 | |
| 596 | |
| 597 | FooUser = User |
| 598 | |
| 599 | |
| 600 | class User(BaseModel): |
| 601 | y: str |
| 602 | |
| 603 | |
| 604 | class Model(BaseModel): |
| 605 | foo_user: FooUser |
| 606 | user: User |
| 607 | |
| 608 | @field_serializer('user') |
| 609 | def serialize_user(self, v): |
| 610 | return f'User({v.y})' |
| 611 | |
| 612 | """ |
| 613 | ) |
| 614 | |
| 615 | m = module.Model(foo_user={'x': 'user1'}, user={'y': 'user2'}) |
| 616 | # TODO: How can we replicate this custom-encoder functionality without affecting the serialization of `User`? |
| 617 | assert m.model_dump_json() == '{"foo_user":{"x":"user1"},"user":"User(user2)"}' |
| 618 | |
| 619 | |
| 620 | def test_pep585_self_referencing_generics(create_module): |
nothing calls this directly
no test coverage detected