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
« prev ^ index » next coverage.py v7.13.0, created at 2026-11-09 00:02 +0000
1from typing import TYPE_CHECKING 1jklmnopqr
3from sqlmodel import Field, SQLModel 1jklmnopqr
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
13 hero = Hero(name="Deadpond", secretName="Dive Wilson") 1abcdefghi
14 other = Hero(name="Spider-Boy", secretName="Pedro Parqueador") 1abcdefghi
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
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]