Coverage for tests / test_tutorial / test_relationship_attributes / test_back_populates / test_tutorial002.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-06-10 09:40 +0000

1import importlib 1abcdefgh

2from types import ModuleType 1abcdefgh

3 

4import pytest 1abcdefgh

5from sqlmodel import create_engine 1abcdefgh

6 

7from ....conftest import PrintMock 1abcdefgh

8 

9 

10@pytest.fixture( 1abcdefgh

11 name="mod", 

12 params=[ 

13 pytest.param("tutorial002_py310"), 

14 ], 

15) 

16def get_module(request: pytest.FixtureRequest) -> ModuleType: 1abcdefgh

17 mod = importlib.import_module( 1abcdefgh

18 f"docs_src.tutorial.relationship_attributes.back_populates.{request.param}" 

19 ) 

20 mod.sqlite_url = "sqlite://" 1abcdefgh

21 mod.engine = create_engine(mod.sqlite_url) 1abcdefgh

22 return mod 1abcdefgh

23 

24 

25expected_calls = [ 1abcdefgh

26 [ 

27 "Created hero:", 

28 { 

29 "age": None, 

30 "id": 1, 

31 "secret_name": "Dive Wilson", 

32 "team_id": 1, 

33 "name": "Deadpond", 

34 }, 

35 ], 

36 [ 

37 "Created hero:", 

38 { 

39 "age": 48, 

40 "id": 2, 

41 "secret_name": "Tommy Sharp", 

42 "team_id": 2, 

43 "name": "Rusty-Man", 

44 }, 

45 ], 

46 [ 

47 "Created hero:", 

48 { 

49 "age": None, 

50 "id": 3, 

51 "secret_name": "Pedro Parqueador", 

52 "team_id": None, 

53 "name": "Spider-Boy", 

54 }, 

55 ], 

56 [ 

57 "Updated hero:", 

58 { 

59 "age": None, 

60 "id": 3, 

61 "secret_name": "Pedro Parqueador", 

62 "team_id": 2, 

63 "name": "Spider-Boy", 

64 }, 

65 ], 

66 [ 

67 "Team Wakaland:", 

68 {"id": 3, "name": "Wakaland", "headquarters": "Wakaland Capital City"}, 

69 ], 

70 [ 

71 "Preventers new hero:", 

72 { 

73 "age": 32, 

74 "id": 6, 

75 "secret_name": "Natalia Roman-on", 

76 "team_id": 2, 

77 "name": "Tarantula", 

78 }, 

79 ], 

80 [ 

81 "Preventers new hero:", 

82 { 

83 "age": 36, 

84 "id": 7, 

85 "secret_name": "Steve Weird", 

86 "team_id": 2, 

87 "name": "Dr. Weird", 

88 }, 

89 ], 

90 [ 

91 "Preventers new hero:", 

92 { 

93 "age": 93, 

94 "id": 8, 

95 "secret_name": "Esteban Rogelios", 

96 "team_id": 2, 

97 "name": "Captain North America", 

98 }, 

99 ], 

100 [ 

101 "Preventers heroes:", 

102 [ 

103 { 

104 "age": 48, 

105 "id": 2, 

106 "secret_name": "Tommy Sharp", 

107 "team_id": 2, 

108 "name": "Rusty-Man", 

109 }, 

110 { 

111 "age": None, 

112 "id": 3, 

113 "secret_name": "Pedro Parqueador", 

114 "team_id": 2, 

115 "name": "Spider-Boy", 

116 }, 

117 { 

118 "age": 32, 

119 "id": 6, 

120 "secret_name": "Natalia Roman-on", 

121 "team_id": 2, 

122 "name": "Tarantula", 

123 }, 

124 { 

125 "age": 36, 

126 "id": 7, 

127 "secret_name": "Steve Weird", 

128 "team_id": 2, 

129 "name": "Dr. Weird", 

130 }, 

131 { 

132 "age": 93, 

133 "id": 8, 

134 "secret_name": "Esteban Rogelios", 

135 "team_id": 2, 

136 "name": "Captain North America", 

137 }, 

138 ], 

139 ], 

140 [ 

141 "Hero Spider-Boy:", 

142 { 

143 "age": None, 

144 "id": 3, 

145 "secret_name": "Pedro Parqueador", 

146 "team_id": 2, 

147 "name": "Spider-Boy", 

148 }, 

149 ], 

150 [ 

151 "Preventers Team:", 

152 {"id": 2, "name": "Preventers", "headquarters": "Sharp Tower"}, 

153 ], 

154 [ 

155 "Preventers Team Heroes:", 

156 [ 

157 { 

158 "age": 48, 

159 "id": 2, 

160 "secret_name": "Tommy Sharp", 

161 "team_id": 2, 

162 "name": "Rusty-Man", 

163 }, 

164 { 

165 "age": None, 

166 "id": 3, 

167 "secret_name": "Pedro Parqueador", 

168 "team_id": 2, 

169 "name": "Spider-Boy", 

170 }, 

171 { 

172 "age": 32, 

173 "id": 6, 

174 "secret_name": "Natalia Roman-on", 

175 "team_id": 2, 

176 "name": "Tarantula", 

177 }, 

178 { 

179 "age": 36, 

180 "id": 7, 

181 "secret_name": "Steve Weird", 

182 "team_id": 2, 

183 "name": "Dr. Weird", 

184 }, 

185 { 

186 "age": 93, 

187 "id": 8, 

188 "secret_name": "Esteban Rogelios", 

189 "team_id": 2, 

190 "name": "Captain North America", 

191 }, 

192 ], 

193 ], 

194 [ 

195 "Spider-Boy without team:", 

196 { 

197 "age": None, 

198 "id": 3, 

199 "secret_name": "Pedro Parqueador", 

200 "team_id": 2, 

201 "name": "Spider-Boy", 

202 }, 

203 ], 

204 [ 

205 "Preventers Team Heroes again:", 

206 [ 

207 { 

208 "age": 48, 

209 "id": 2, 

210 "secret_name": "Tommy Sharp", 

211 "team_id": 2, 

212 "name": "Rusty-Man", 

213 }, 

214 { 

215 "age": 32, 

216 "id": 6, 

217 "secret_name": "Natalia Roman-on", 

218 "team_id": 2, 

219 "name": "Tarantula", 

220 }, 

221 { 

222 "age": 36, 

223 "id": 7, 

224 "secret_name": "Steve Weird", 

225 "team_id": 2, 

226 "name": "Dr. Weird", 

227 }, 

228 { 

229 "age": 93, 

230 "id": 8, 

231 "secret_name": "Esteban Rogelios", 

232 "team_id": 2, 

233 "name": "Captain North America", 

234 }, 

235 ], 

236 ], 

237 ["After committing"], 

238 [ 

239 "Spider-Boy after commit:", 

240 { 

241 "age": None, 

242 "id": 3, 

243 "secret_name": "Pedro Parqueador", 

244 "team_id": None, 

245 "name": "Spider-Boy", 

246 }, 

247 ], 

248 [ 

249 "Preventers Team Heroes after commit:", 

250 [ 

251 { 

252 "age": 48, 

253 "id": 2, 

254 "secret_name": "Tommy Sharp", 

255 "team_id": 2, 

256 "name": "Rusty-Man", 

257 }, 

258 { 

259 "age": 32, 

260 "id": 6, 

261 "secret_name": "Natalia Roman-on", 

262 "team_id": 2, 

263 "name": "Tarantula", 

264 }, 

265 { 

266 "age": 36, 

267 "id": 7, 

268 "secret_name": "Steve Weird", 

269 "team_id": 2, 

270 "name": "Dr. Weird", 

271 }, 

272 { 

273 "age": 93, 

274 "id": 8, 

275 "secret_name": "Esteban Rogelios", 

276 "team_id": 2, 

277 "name": "Captain North America", 

278 }, 

279 ], 

280 ], 

281] 

282 

283 

284def test_tutorial(print_mock: PrintMock, mod: ModuleType): 1abcdefgh

285 mod.main() 1ijklmnop

286 assert print_mock.calls == expected_calls 1ijklmnop