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

30 statements  

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

1import importlib 1jklmnopqr

2from types import ModuleType 1jklmnopqr

3 

4import pytest 1jklmnopqr

5from sqlalchemy import Engine 1jklmnopqr

6from sqlmodel import Session, select 1jklmnopqr

7 

8 

9@pytest.fixture( 1jklmnopqr

10 name="mod", 

11 params=[ 

12 pytest.param("tutorial001_py310"), 

13 ], 

14) 

15def get_module(request: pytest.FixtureRequest, database_engine: Engine) -> ModuleType: 1jklmnopqr

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

17 mod.engine = database_engine 1jklmnopqr

18 return mod 1jklmnopqr

19 

20 

21def test_tutorial(mod: ModuleType): 1jklmnopqr

22 mod.main() 1abcdefghi

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

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

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

26 deadpond = heroes_by_name["Deadpond"] 1abcdefghi

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

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

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

30 assert deadpond.age is None 1abcdefghi

31 assert deadpond.id is not None 1abcdefghi

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

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

34 assert spider_boy.age is None 1abcdefghi

35 assert spider_boy.id is not None 1abcdefghi

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

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

38 assert rusty_man.age == 48 1abcdefghi

39 assert rusty_man.id is not None 1abcdefghi

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