Coverage for tests / test_tutorial / test_insert / test_tutorial001.py: 100%

30 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-06-10 09:40 +0000

1import importlib 1ijklmnop

2from types import ModuleType 1ijklmnop

3 

4import pytest 1ijklmnop

5from sqlmodel import Session, create_engine, select 1ijklmnop

6 

7 

8@pytest.fixture( 1ijklmnop

9 name="mod", 

10 params=[ 

11 pytest.param("tutorial001_py310"), 

12 ], 

13) 

14def get_module(request: pytest.FixtureRequest) -> ModuleType: 1ijklmnop

15 mod = importlib.import_module(f"docs_src.tutorial.insert.{request.param}") 1ijklmnop

16 mod.sqlite_url = "sqlite://" 1ijklmnop

17 mod.engine = create_engine(mod.sqlite_url) 1ijklmnop

18 return mod 1ijklmnop

19 

20 

21def test_tutorial(mod: ModuleType): 1ijklmnop

22 mod.main() 1abcdefgh

23 with Session(mod.engine) as session: 1abcdefgh

24 heroes = session.exec(select(mod.Hero)).all() 1abcdefgh

25 heroes_by_name = {hero.name: hero for hero in heroes} 1abcdefgh

26 deadpond = heroes_by_name["Deadpond"] 1abcdefgh

27 spider_boy = heroes_by_name["Spider-Boy"] 1abcdefgh

28 rusty_man = heroes_by_name["Rusty-Man"] 1abcdefgh

29 assert deadpond.name == "Deadpond" 1abcdefgh

30 assert deadpond.age is None 1abcdefgh

31 assert deadpond.id is not None 1abcdefgh

32 assert deadpond.secret_name == "Dive Wilson" 1abcdefgh

33 assert spider_boy.name == "Spider-Boy" 1abcdefgh

34 assert spider_boy.age is None 1abcdefgh

35 assert spider_boy.id is not None 1abcdefgh

36 assert spider_boy.secret_name == "Pedro Parqueador" 1abcdefgh

37 assert rusty_man.name == "Rusty-Man" 1abcdefgh

38 assert rusty_man.age == 48 1abcdefgh

39 assert rusty_man.id is not None 1abcdefgh

40 assert rusty_man.secret_name == "Tommy Sharp" 1abcdefgh