mirror of
https://github.com/nonebot/nonebot2.git
synced 2026-03-17 02:24:46 +00:00
✨ Feature: 放宽 pydantic compat model dump 类型 (#3898)
This commit is contained in:
@@ -73,12 +73,41 @@ def test_type_adapter():
|
||||
|
||||
|
||||
def test_model_dump():
|
||||
class NestedModel(BaseModel):
|
||||
hidden: int
|
||||
shown: int
|
||||
|
||||
class TestModel(BaseModel):
|
||||
test1: int
|
||||
test2: int
|
||||
nested: NestedModel
|
||||
items: list[NestedModel]
|
||||
|
||||
assert model_dump(TestModel(test1=1, test2=2), include={"test1"}) == {"test1": 1}
|
||||
assert model_dump(TestModel(test1=1, test2=2), exclude={"test1"}) == {"test2": 2}
|
||||
model = TestModel(
|
||||
test1=1,
|
||||
test2=2,
|
||||
nested=NestedModel(hidden=3, shown=4),
|
||||
items=[NestedModel(hidden=5, shown=6)],
|
||||
)
|
||||
|
||||
assert model_dump(model, include={"test1"}) == {"test1": 1}
|
||||
assert model_dump(model, exclude={"test1"}) == {
|
||||
"test2": 2,
|
||||
"nested": {"hidden": 3, "shown": 4},
|
||||
"items": [{"hidden": 5, "shown": 6}],
|
||||
}
|
||||
assert model_dump(model, exclude={"nested": {"hidden"}}) == {
|
||||
"test1": 1,
|
||||
"test2": 2,
|
||||
"nested": {"shown": 4},
|
||||
"items": [{"hidden": 5, "shown": 6}],
|
||||
}
|
||||
assert model_dump(model, exclude={"items": {"__all__": {"hidden"}}}) == {
|
||||
"test1": 1,
|
||||
"test2": 2,
|
||||
"nested": {"hidden": 3, "shown": 4},
|
||||
"items": [{"shown": 6}],
|
||||
}
|
||||
|
||||
|
||||
def test_model_validator():
|
||||
|
||||
Reference in New Issue
Block a user