Coverage for tests / test_tutorial / test_insert / test_tutorial001.py: 100%
31 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-06 21:09 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-06 21:09 +0000
1import importlib 1jklmnopqr
2from types import ModuleType 1jklmnopqr
4import pytest 1jklmnopqr
5from sqlmodel import Session, create_engine, select 1jklmnopqr
7from ...conftest import needs_py310 1jklmnopqr
10@pytest.fixture( 1jklmnopqr
11 name="mod",
12 params=[
13 pytest.param("tutorial001_py39"),
14 pytest.param("tutorial001_py310", marks=needs_py310),
15 ],
16)
17def get_module(request: pytest.FixtureRequest) -> ModuleType: 1jklmnopqr
18 mod = importlib.import_module(f"docs_src.tutorial.insert.{request.param}") 1jklmnopqr
19 mod.sqlite_url = "sqlite://" 1jklmnopqr
20 mod.engine = create_engine(mod.sqlite_url) 1jklmnopqr
21 return mod 1jklmnopqr
24def test_tutorial(mod: ModuleType): 1jklmnopqr
25 mod.main() 1abcdefghi
26 with Session(mod.engine) as session: 1abcdefghi
27 heroes = session.exec(select(mod.Hero)).all() 1abcdefghi
28 heroes_by_name = {hero.name: hero for hero in heroes} 1abcdefghi
29 deadpond = heroes_by_name["Deadpond"] 1abcdefghi
30 spider_boy = heroes_by_name["Spider-Boy"] 1abcdefghi
31 rusty_man = heroes_by_name["Rusty-Man"] 1abcdefghi
32 assert deadpond.name == "Deadpond" 1abcdefghi
33 assert deadpond.age is None 1abcdefghi
34 assert deadpond.id is not None 1abcdefghi
35 assert deadpond.secret_name == "Dive Wilson" 1abcdefghi
36 assert spider_boy.name == "Spider-Boy" 1abcdefghi
37 assert spider_boy.age is None 1abcdefghi
38 assert spider_boy.id is not None 1abcdefghi
39 assert spider_boy.secret_name == "Pedro Parqueador" 1abcdefghi
40 assert rusty_man.name == "Rusty-Man" 1abcdefghi
41 assert rusty_man.age == 48 1abcdefghi
42 assert rusty_man.id is not None 1abcdefghi
43 assert rusty_man.secret_name == "Tommy Sharp" 1abcdefghi