support overwriting dunder attributes of BaseModel instances (#3907)

* support overwriting dunder attributes of `BaseModel` instances

closes #3777

* suggestion from @adriangb

Co-authored-by: Samuel Colvin <s@muelcolvin.com>
This commit is contained in:
Eric Jolibois
2022-08-08 17:15:01 +02:00
committed by GitHub
parent cf16f7c388
commit da8f0c034e
4 changed files with 33 additions and 10 deletions
+14
View File
@@ -19,6 +19,7 @@ from typing import (
from uuid import UUID, uuid4
import pytest
from typing_extensions import Annotated
from pydantic import (
BaseConfig,
@@ -2174,6 +2175,19 @@ def test_new_union_origin():
}
def test_annotated_class():
class PydanticModel(BaseModel):
foo: str = '123'
PydanticAlias = Annotated[PydanticModel, 'bar baz']
pa = PydanticAlias()
assert isinstance(pa, PydanticModel)
pa.__doc__ = 'qwe'
assert repr(pa) == "PydanticModel(foo='123')"
assert pa.__doc__ == 'qwe'
@pytest.mark.parametrize(
'ann',
[Final, Final[int]],