Coverage for tests / test_field_sa_type.py: 100%

15 statements  

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

1from typing import Any, cast 1jklmnopqr

2 

3from sqlalchemy import Integer, String 1jklmnopqr

4from sqlmodel import Field, SQLModel 1jklmnopqr

5 

6 

7def test_sa_type_class() -> None: 1jklmnopqr

8 class Item(SQLModel, table=True): 1stuvwxyzA

9 id: int = Field(primary_key=True, sa_type=Integer) 1stuvwxyzA

10 

11 id_column = cast(Any, Item).id 1stuvwxyzA

12 assert isinstance(id_column.type, Integer) 1stuvwxyzA

13 

14 

15def test_sa_type_instance() -> None: 1jklmnopqr

16 class Item(SQLModel, table=True): 1abcdefghi

17 id: int = Field(primary_key=True) 1abcdefghi

18 name: str = Field(sa_type=String(50)) 1abcdefghi

19 

20 name_column = cast(Any, Item).name 1abcdefghi

21 assert isinstance(name_column.type, String) 1abcdefghi

22 assert name_column.type.length == 50 1abcdefghi