Coverage for tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py: 100%
44 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-15 09:31 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-15 09:31 +0000
1import importlib 1ghijkl
2from types import ModuleType 1ghijkl
3from typing import Any, Dict, List, Union 1ghijkl
5import pytest 1ghijkl
6from sqlmodel import create_engine 1ghijkl
8from tests.conftest import PrintMock, needs_py310 1ghijkl
11def check_calls(calls: List[List[Union[str, Dict[str, Any]]]]) -> None: 1ghijkl
12 assert calls[0] == ["Before interacting with the database"] 1abcdef
13 assert calls[1] == [ 1abcdef
14 "Hero 1:",
15 {
16 "id": None,
17 "name": "Deadpond",
18 "secret_name": "Dive Wilson",
19 "age": None,
20 },
21 ]
22 assert calls[2] == [ 1abcdef
23 "Hero 2:",
24 {
25 "id": None,
26 "name": "Spider-Boy",
27 "secret_name": "Pedro Parqueador",
28 "age": None,
29 },
30 ]
31 assert calls[3] == [ 1abcdef
32 "Hero 3:",
33 {
34 "id": None,
35 "name": "Rusty-Man",
36 "secret_name": "Tommy Sharp",
37 "age": 48,
38 },
39 ]
40 assert calls[4] == ["After adding to the session"] 1abcdef
41 assert calls[5] == [ 1abcdef
42 "Hero 1:",
43 {
44 "id": None,
45 "name": "Deadpond",
46 "secret_name": "Dive Wilson",
47 "age": None,
48 },
49 ]
50 assert calls[6] == [ 1abcdef
51 "Hero 2:",
52 {
53 "id": None,
54 "name": "Spider-Boy",
55 "secret_name": "Pedro Parqueador",
56 "age": None,
57 },
58 ]
59 assert calls[7] == [ 1abcdef
60 "Hero 3:",
61 {
62 "id": None,
63 "name": "Rusty-Man",
64 "secret_name": "Tommy Sharp",
65 "age": 48,
66 },
67 ]
68 assert calls[8] == ["After committing the session"] 1abcdef
69 assert calls[9] == ["Hero 1:", {}] 1abcdef
70 assert calls[10] == ["Hero 2:", {}] 1abcdef
71 assert calls[11] == ["Hero 3:", {}] 1abcdef
72 assert calls[12] == ["After committing the session, show IDs"] 1abcdef
73 assert calls[13] == ["Hero 1 ID:", 1] 1abcdef
74 assert calls[14] == ["Hero 2 ID:", 2] 1abcdef
75 assert calls[15] == ["Hero 3 ID:", 3] 1abcdef
76 assert calls[16] == ["After committing the session, show names"] 1abcdef
77 assert calls[17] == ["Hero 1 name:", "Deadpond"] 1abcdef
78 assert calls[18] == ["Hero 2 name:", "Spider-Boy"] 1abcdef
79 assert calls[19] == ["Hero 3 name:", "Rusty-Man"] 1abcdef
80 assert calls[20] == ["After refreshing the heroes"] 1abcdef
81 assert calls[21] == [ 1abcdef
82 "Hero 1:",
83 {
84 "id": 1,
85 "name": "Deadpond",
86 "secret_name": "Dive Wilson",
87 "age": None,
88 },
89 ]
90 assert calls[22] == [ 1abcdef
91 "Hero 2:",
92 {
93 "id": 2,
94 "name": "Spider-Boy",
95 "secret_name": "Pedro Parqueador",
96 "age": None,
97 },
98 ]
99 assert calls[23] == [ 1abcdef
100 "Hero 3:",
101 {
102 "id": 3,
103 "name": "Rusty-Man",
104 "secret_name": "Tommy Sharp",
105 "age": 48,
106 },
107 ]
108 assert calls[24] == ["After the session closes"] 1abcdef
109 assert calls[21] == [ 1abcdef
110 "Hero 1:",
111 {
112 "id": 1,
113 "name": "Deadpond",
114 "secret_name": "Dive Wilson",
115 "age": None,
116 },
117 ]
118 assert calls[22] == [ 1abcdef
119 "Hero 2:",
120 {
121 "id": 2,
122 "name": "Spider-Boy",
123 "secret_name": "Pedro Parqueador",
124 "age": None,
125 },
126 ]
127 assert calls[23] == [ 1abcdef
128 "Hero 3:",
129 {
130 "id": 3,
131 "name": "Rusty-Man",
132 "secret_name": "Tommy Sharp",
133 "age": 48,
134 },
135 ]
138@pytest.fixture( 1ghijkl
139 name="module",
140 params=[
141 "tutorial001",
142 "tutorial002",
143 pytest.param("tutorial001_py310", marks=needs_py310),
144 pytest.param("tutorial002_py310", marks=needs_py310),
145 ],
146)
147def get_module(request: pytest.FixtureRequest) -> ModuleType: 1ghijkl
148 module = importlib.import_module( 1ghijkl
149 f"docs_src.tutorial.automatic_id_none_refresh.{request.param}"
150 )
151 module.sqlite_url = "sqlite://" 1ghijkl
152 module.engine = create_engine(module.sqlite_url) 1ghijkl
154 return module 1ghijkl
157def test_tutorial_001_tutorial_002(print_mock: PrintMock, module: ModuleType) -> None: 1ghijkl
158 module.main() 1abcdef
159 check_calls(print_mock.calls) 1abcdef