Coverage for tests/test_query.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-07 05:42 +0000

1from typing import Optional 1hijklmn

2 

3import pytest 1hijklmn

4from sqlmodel import Field, Session, SQLModel, create_engine 1hijklmn

5 

6 

7def test_query(clear_sqlmodel): 1hijklmn

8 class Hero(SQLModel, table=True): 1abcdefg

9 id: Optional[int] = Field(default=None, primary_key=True) 1abcdefg

10 name: str 1abcdefg

11 secret_name: str 1abcdefg

12 age: Optional[int] = None 1abcdefg

13 

14 hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson") 1abcdefg

15 

16 engine = create_engine("sqlite://") 1abcdefg

17 

18 SQLModel.metadata.create_all(engine) 1abcdefg

19 with Session(engine) as session: 1abcdefg

20 session.add(hero_1) 1abcdefg

21 session.commit() 1abcdefg

22 session.refresh(hero_1) 1abcdefg

23 

24 with Session(engine) as session: 1abcdefg

25 with pytest.warns(DeprecationWarning): 1abcdefg

26 query_hero = session.query(Hero).first() 1abcdefg

27 assert query_hero 1abcdefg

28 assert query_hero.name == hero_1.name 1abcdefg