Coverage for tests / test_tutorial / test_update / test_tutorial003_tutorial004.py: 100%
20 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 1abcdefghi
2from types import ModuleType 1abcdefghi
4import pytest 1abcdefghi
5from sqlmodel import create_engine 1abcdefghi
7from ...conftest import PrintMock, needs_py310 1abcdefghi
9expected_calls = [ 1abcdefghi
10 [
11 "Hero 1:",
12 {"id": 2, "name": "Spider-Boy", "secret_name": "Pedro Parqueador", "age": None},
13 ],
14 [
15 "Hero 2:",
16 {
17 "id": 7,
18 "name": "Captain North America",
19 "secret_name": "Esteban Rogelios",
20 "age": 93,
21 },
22 ],
23 [
24 "Updated hero 1:",
25 {
26 "id": 2,
27 "name": "Spider-Youngster",
28 "secret_name": "Pedro Parqueador",
29 "age": 16,
30 },
31 ],
32 [
33 "Updated hero 2:",
34 {
35 "id": 7,
36 "name": "Captain North America Except Canada",
37 "secret_name": "Esteban Rogelios",
38 "age": 110,
39 },
40 ],
41]
44@pytest.fixture(name="module") 1abcdefghi
45def get_module(request: pytest.FixtureRequest) -> ModuleType: 1abcdefghi
46 module = importlib.import_module(f"docs_src.tutorial.update.{request.param}") 1abcdefghi
47 module.sqlite_url = "sqlite://" 1abcdefghi
48 module.engine = create_engine(module.sqlite_url) 1abcdefghi
49 return module 1abcdefghi
52@pytest.mark.parametrize( 1abcdefghi
53 "module",
54 [
55 pytest.param("tutorial003_py39"),
56 pytest.param("tutorial003_py310", marks=needs_py310),
57 ],
58 indirect=True,
59)
60def test_tutorial003(print_mock: PrintMock, module: ModuleType): 1abcdefghi
61 module.main() 1jklmnopqr
62 assert print_mock.calls == expected_calls 1jklmnopqr
65@pytest.mark.parametrize( 1abcdefghi
66 "module",
67 [
68 pytest.param("tutorial004_py39"),
69 pytest.param("tutorial004_py310", marks=needs_py310),
70 ],
71 indirect=True,
72)
73def test_tutorial004(print_mock: PrintMock, module: ModuleType): 1abcdefghi
74 module.main() 1stuvwxyzA
75 assert print_mock.calls == expected_calls 1stuvwxyzA