Skip to content

Commit c05768c

Browse files
committed
Add test cases for Pydantic BaseModel functionality
1 parent d80e430 commit c05768c

File tree

1 file changed

+118
-0
lines changed

1 file changed

+118
-0
lines changed

test-data/unit/stubgen.test

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4718,3 +4718,121 @@ class DCMeta(type): ...
47184718

47194719
class DC(metaclass=DCMeta):
47204720
x: str
4721+
4722+
[case testPydanticBaseModel]
4723+
import pydantic
4724+
4725+
class User(pydantic.BaseModel):
4726+
id: int
4727+
name: str
4728+
active: bool = True
4729+
optional_field: str | None = None
4730+
[out]
4731+
import pydantic
4732+
4733+
class User(pydantic.BaseModel):
4734+
id: int
4735+
name: str
4736+
active: bool = ...
4737+
optional_field: str | None = ...
4738+
4739+
[case testPydanticBaseModelWithAnnotationsOnly]
4740+
import pydantic
4741+
4742+
class ConfigSettings(pydantic.BaseModel):
4743+
# Fields without initialization
4744+
db_name: str
4745+
port: int
4746+
debug: bool
4747+
[out]
4748+
import pydantic
4749+
4750+
class ConfigSettings(pydantic.BaseModel):
4751+
db_name: str
4752+
port: int
4753+
debug: bool
4754+
4755+
[case testPydanticNestedBaseModel]
4756+
from pydantic import BaseModel
4757+
4758+
class Address(BaseModel):
4759+
street: str
4760+
city: str
4761+
4762+
class User(BaseModel):
4763+
name: str
4764+
age: int
4765+
address: Address | None = None
4766+
[out]
4767+
from pydantic import BaseModel
4768+
4769+
class Address(BaseModel):
4770+
street: str
4771+
city: str
4772+
4773+
class User(BaseModel):
4774+
name: str
4775+
age: int
4776+
address: Address | None = ...
4777+
4778+
[case testPydanticBaseModelComplex]
4779+
from pydantic import BaseModel
4780+
from typing import Dict, List, Optional, Union
4781+
4782+
class Item(BaseModel):
4783+
name: str
4784+
description: Optional[str] = None
4785+
tags: List[str] = []
4786+
properties: Dict[str, Union[str, int, float, bool]] = {}
4787+
[out]
4788+
from pydantic import BaseModel
4789+
4790+
class Item(BaseModel):
4791+
name: str
4792+
description: str | None = ...
4793+
tags: list[str] = ...
4794+
properties: dict[str, str | int | float | bool] = ...
4795+
4796+
[case testPydanticBaseModelInheritance]
4797+
from pydantic import BaseModel
4798+
4799+
class BaseUser(BaseModel):
4800+
id: int
4801+
active: bool = True
4802+
4803+
class User(BaseUser):
4804+
name: str
4805+
email: str
4806+
[out]
4807+
from pydantic import BaseModel
4808+
4809+
class BaseUser(BaseModel):
4810+
id: int
4811+
active: bool = ...
4812+
4813+
class User(BaseUser):
4814+
name: str
4815+
email: str
4816+
4817+
[case testPydanticModelWithMethods]
4818+
from pydantic import BaseModel
4819+
4820+
class User(BaseModel):
4821+
id: int
4822+
name: str
4823+
4824+
def get_display_name(self) -> str:
4825+
return f"User {self.name}"
4826+
4827+
@property
4828+
def display_id(self) -> str:
4829+
return f"ID: {self.id}"
4830+
[out]
4831+
from pydantic import BaseModel
4832+
4833+
class User(BaseModel):
4834+
id: int
4835+
name: str
4836+
def get_display_name(self) -> str: ...
4837+
@property
4838+
def display_id(self) -> str: ...

0 commit comments

Comments
 (0)