Coverage for tests / test_field_sa_relationship.py: 100%
5 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
1import pytest 1stuvwxyzA
2from sqlalchemy.orm import relationship 1stuvwxyzA
3from sqlmodel import Field, Relationship, SQLModel 1stuvwxyzA
6def test_sa_relationship_no_args() -> None: 1stuvwxyzA
7 with pytest.raises(RuntimeError): # pragma: no cover 1abcmdnefo
9 class Team(SQLModel, table=True): 1abcmdnefo
10 id: int | None = Field(default=None, primary_key=True) 1abcmdnefo
11 name: str = Field(index=True) 1abcmdnefo
12 headquarters: str 1abcdef
14 heroes: list["Hero"] = Relationship( 1abcmdnefo
15 back_populates="team", 1abcmdnefo
16 sa_relationship_args=["Hero"], 1abcmdnefo
17 sa_relationship=relationship("Hero", back_populates="team"), 1abcmdnefo
18 )
20 class Hero(SQLModel, table=True):
21 id: int | None = Field(default=None, primary_key=True)
22 name: str = Field(index=True)
23 secret_name: str
24 age: int | None = Field(default=None, index=True)
26 team_id: int | None = Field(default=None, foreign_key="team.id")
27 team: Team | None = Relationship(back_populates="heroes")
30def test_sa_relationship_no_kwargs() -> None: 1stuvwxyzA
31 with pytest.raises(RuntimeError): # pragma: no cover 1ghipjqklr
33 class Team(SQLModel, table=True): 1ghipjqklr
34 id: int | None = Field(default=None, primary_key=True) 1ghipjqklr
35 name: str = Field(index=True) 1ghipjqklr
36 headquarters: str 1ghijkl
38 heroes: list["Hero"] = Relationship( 1ghipjqklr
39 back_populates="team", 1ghipjqklr
40 sa_relationship_kwargs={"lazy": "selectin"}, 1ghipjqklr
41 sa_relationship=relationship("Hero", back_populates="team"), 1ghipjqklr
42 )
44 class Hero(SQLModel, table=True):
45 id: int | None = Field(default=None, primary_key=True)
46 name: str = Field(index=True)
47 secret_name: str
48 age: int | None = Field(default=None, index=True)
50 team_id: int | None = Field(default=None, foreign_key="team.id")
51 team: Team | None = Relationship(back_populates="heroes")