Coverage for tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py: 100%
44 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-27 00:03 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-27 00:03 +0000
1import importlib 1klmnopqrst
2from types import ModuleType 1klmnopqrst
3from typing import Any, Dict, List, Union 1klmnopqrst
5import pytest 1klmnopqrst
6from sqlmodel import create_engine 1klmnopqrst
8from tests.conftest import PrintMock, needs_py310 1klmnopqrst
11def check_calls(calls: List[List[Union[str, Dict[str, Any]]]]) -> None: 1klmnopqrst
12 assert calls[0] == ["Before interacting with the database"] 1abcdefghij
13 assert calls[1] == [ 1abcdefghij
14 "Hero 1:",
15 {
16 "id": None,
17 "name": "Deadpond",
18 "secret_name": "Dive Wilson",
19 "age": None,
20 },
21 ]
22 assert calls[2] == [ 1abcdefghij
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] == [ 1abcdefghij
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"] 1abcdefghij
41 assert calls[5] == [ 1abcdefghij
42 "Hero 1:",
43 {
44 "id": None,
45 "name": "Deadpond",
46 "secret_name": "Dive Wilson",
47 "age": None,
48 },
49 ]
50 assert calls[6] == [ 1abcdefghij
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] == [ 1abcdefghij
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"] 1abcdefghij
69 assert calls[9] == ["Hero 1:", {}] 1abcdefghij
70 assert calls[10] == ["Hero 2:", {}] 1abcdefghij
71 assert calls[11] == ["Hero 3:", {}] 1abcdefghij
72 assert calls[12] == ["After committing the session, show IDs"] 1abcdefghij
73 assert calls[13] == ["Hero 1 ID:", 1] 1abcdefghij
74 assert calls[14] == ["Hero 2 ID:", 2] 1abcdefghij
75 assert calls[15] == ["Hero 3 ID:", 3] 1abcdefghij
76 assert calls[16] == ["After committing the session, show names"] 1abcdefghij
77 assert calls[17] == ["Hero 1 name:", "Deadpond"] 1abcdefghij
78 assert calls[18] == ["Hero 2 name:", "Spider-Boy"] 1abcdefghij
79 assert calls[19] == ["Hero 3 name:", "Rusty-Man"] 1abcdefghij
80 assert calls[20] == ["After refreshing the heroes"] 1abcdefghij
81 assert calls[21] == [ 1abcdefghij
82 "Hero 1:",
83 {
84 "id": 1,
85 "name": "Deadpond",
86 "secret_name": "Dive Wilson",
87 "age": None,
88 },
89 ]
90 assert calls[22] == [ 1abcdefghij
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] == [ 1abcdefghij
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"] 1abcdefghij
109 assert calls[21] == [ 1abcdefghij
110 "Hero 1:",
111 {
112 "id": 1,
113 "name": "Deadpond",
114 "secret_name": "Dive Wilson",
115 "age": None,
116 },
117 ]
118 assert calls[22] == [ 1abcdefghij
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] == [ 1abcdefghij
128 "Hero 3:",
129 {
130 "id": 3,
131 "name": "Rusty-Man",
132 "secret_name": "Tommy Sharp",
133 "age": 48,
134 },
135 ]
138@pytest.fixture( 1klmnopqrst
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: 1klmnopqrst
148 module = importlib.import_module( 1klmnopqrst
149 f"docs_src.tutorial.automatic_id_none_refresh.{request.param}"
150 )
151 module.sqlite_url = "sqlite://" 1klmnopqrst
152 module.engine = create_engine(module.sqlite_url) 1klmnopqrst
154 return module 1klmnopqrst
157def test_tutorial_001_tutorial_002(print_mock: PrintMock, module: ModuleType) -> None: 1klmnopqrst
158 module.main() 1abcdefghij
159 check_calls(print_mock.calls) 1abcdefghij