Coverage for tests / test_dataclass_transform.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-11-09 00:02 +0000

1from typing import TYPE_CHECKING 1jklmnopqr

2 

3from sqlmodel import Field, SQLModel 1jklmnopqr

4 

5 

6def test_field_parameters() -> None: 1jklmnopqr

7 class Hero(SQLModel): 1abcdefghi

8 name: str = Field() 1abcdefghi

9 secret_name: str = Field(alias="secretName") 1abcdefghi

10 age: int = Field(default=42) 1abcdefghi

11 tags: list[str] = Field(default_factory=list) 1abcdefghi

12 

13 hero = Hero(name="Deadpond", secretName="Dive Wilson") 1abcdefghi

14 other = Hero(name="Spider-Boy", secretName="Pedro Parqueador") 1abcdefghi

15 

16 assert hero.name == "Deadpond" 1abcdefghi

17 assert hero.secret_name == "Dive Wilson" 1abcdefghi

18 assert hero.age == 42 1abcdefghi

19 assert hero.tags == [] 1abcdefghi

20 assert hero.tags is not other.tags 1abcdefghi

21 

22 if TYPE_CHECKING: 1abcdefghi

23 Hero(secretName="Dive Wilson") # ty: ignore[missing-argument] 

24 Hero("Deadpond", "Dive Wilson") # ty: ignore[too-many-positional-arguments, missing-argument] 

25 Hero(name=123, secretName="Dive Wilson") # ty: ignore[invalid-argument-type]