Coverage for tests / test_annotated_uuid.py: 100%
16 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
1import uuid 1ijklmnop
3from sqlmodel import Field, Session, SQLModel, create_engine, select 1ijklmnop
6def test_annotated_optional_types(clear_sqlmodel) -> None: 1ijklmnop
7 from pydantic import UUID4 1abcdefgh
9 class Hero(SQLModel, table=True): 1abcdefgh
10 # Pydantic UUID4 is: Annotated[UUID, UuidVersion(4)]
11 id: UUID4 | None = Field(default_factory=uuid.uuid4, primary_key=True) 1abcdefgh
13 engine = create_engine("sqlite:///:memory:") 1abcdefgh
14 SQLModel.metadata.create_all(engine) 1abcdefgh
15 with Session(engine) as db: 1abcdefgh
16 hero = Hero() 1abcdefgh
17 db.add(hero) 1abcdefgh
18 db.commit() 1abcdefgh
19 statement = select(Hero) 1abcdefgh
20 result = db.exec(statement).all() 1abcdefgh
21 assert len(result) == 1 1abcdefgh
22 assert isinstance(hero.id, uuid.UUID) 1abcdefgh