Coverage for tests / test_tutorial / test_insert / test_tutorial003.py: 100%
30 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
1import importlib 1ijklmnop
2from types import ModuleType 1ijklmnop
4import pytest 1ijklmnop
5from sqlmodel import Session, create_engine, select 1ijklmnop
8@pytest.fixture( 1ijklmnop
9 name="mod",
10 params=[
11 pytest.param("tutorial003_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
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