Coverage for tests\test_run_modelization_update_task.py: 100.00%

266 statements  

« prev     ^ index     » next       coverage.py v7.4.3, created at 2024-03-22 23:23 +0100

1# -*- coding: utf-8 -*- 

2 

3""" 

4* Name: interactive-clustering-gui/tests/test_fake_backgroundtasks.run_modelization_update_task.py 

5* Description: Unittests for the `fake_backgroundtasks.run_modelization_update_task` background task. 

6* Author: Erwan Schild 

7* Created: 13/12/2021 

8* Licence: CeCILL (https://cecill.info/licences.fr.html) 

9""" 

10 

11# ============================================================================== 

12# IMPORT PYTHON DEPENDENCIES 

13# ============================================================================== 

14 

15import json 

16import os 

17 

18from tests.dummies_utils import create_dummy_projects 

19 

20# ============================================================================== 

21# test_ko_not_found 

22# ============================================================================== 

23 

24 

25def test_ko_not_found(fake_backgroundtasks): 

26 """ 

27 Test the `modelization update` task with project not existing. 

28 

29 Args: 

30 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

31 """ 

32 

33 # Run the task. 

34 fake_backgroundtasks.run_modelization_update_task( 

35 project_id="UNKNOWN_PROJECT", 

36 ) 

37 

38 

39# ============================================================================== 

40# test_ko_bad_state 

41# ============================================================================== 

42 

43 

44def test_ko_bad_state(fake_backgroundtasks, tmp_path): 

45 """ 

46 Test the `modelization update` task with bad state. 

47 

48 Args: 

49 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

50 tmp_path: Pytest fixture: points to a temporary directory. 

51 """ 

52 

53 # Create dummy projects. 

54 create_dummy_projects( 

55 tmp_path=tmp_path, 

56 list_of_dummy_project_ids=[ 

57 "1a_SAMPLING_TODO", 

58 ], 

59 ) 

60 

61 # Run the task. 

62 fake_backgroundtasks.run_modelization_update_task( 

63 project_id="1a_SAMPLING_TODO", 

64 ) 

65 

66 

67# ============================================================================== 

68# test_ok_1a 

69# ============================================================================== 

70 

71 

72def test_ok_1a(fake_backgroundtasks, tmp_path): 

73 """ 

74 Test the `modelization update` task works. 

75 

76 Args: 

77 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

78 tmp_path: Pytest fixture: points to a temporary directory. 

79 """ 

80 

81 # Create dummy projects. 

82 create_dummy_projects( 

83 tmp_path=tmp_path, 

84 list_of_dummy_project_ids=[ 

85 "0b_INITIALIZATION_WITH_PENDING_MODELIZATION", 

86 ], 

87 ) 

88 

89 # Check texts. 

90 with open(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION" / "texts.json", "r") as texts_before_fileobject: 

91 assert json.load(texts_before_fileobject) == { 

92 "0": { 

93 "text_original": "créer un numéro virtuel", 

94 "text": "créer un numéro virtuel", 

95 "text_preprocessed": "créer un numéro virtuel", 

96 "is_deleted": False, 

97 }, 

98 "1": { 

99 "text_original": "activer les numéros de carte virtuelle", 

100 "text": "activer les numéros de carte virtuelle", 

101 "text_preprocessed": "activer les numéros de carte virtuelle", 

102 "is_deleted": False, 

103 }, 

104 "2": { 

105 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

106 "text": "Comment utiliser un numéro de carte virtuelle ?", 

107 "text_preprocessed": "Comment utiliser un numéro de carte virtuelle ?", 

108 "is_deleted": False, 

109 }, 

110 "3": { 

111 "text_original": "débloquer le paiement avec carte virtuelle", 

112 "text": "débloquer le paiement avec carte virtuelle", 

113 "text_preprocessed": "débloquer le paiement avec carte virtuelle", 

114 "is_deleted": False, 

115 }, 

116 "4": { 

117 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

118 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

119 "text_preprocessed": "obtenir un numéro virtuel pour mes achats en ligne", 

120 "is_deleted": False, 

121 }, 

122 "5": { 

123 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

124 "text": "Où puis-je gérer mes numéros virtuels ?", 

125 "text_preprocessed": "Où puis-je gérer mes numéros virtuels ?", 

126 "is_deleted": False, 

127 }, 

128 "6": { 

129 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

130 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

131 "text_preprocessed": "Que faire pour activer une carte bancaire virtuelle ?", 

132 "is_deleted": False, 

133 }, 

134 "7": { 

135 "text_original": "supprimer un numéro de carte virtuel", 

136 "text": "supprimer un numéro de carte virtuel", 

137 "text_preprocessed": "supprimer un numéro de carte virtuel", 

138 "is_deleted": False, 

139 }, 

140 "8": { 

141 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

142 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

143 "text_preprocessed": "Combien d'argent me reste-t-il sur mon compte ?", 

144 "is_deleted": False, 

145 }, 

146 "9": { 

147 "text_original": "Je souhaite connaître le solde de mon compte.", 

148 "text": "Je souhaite connaître le solde de mon compte.", 

149 "text_preprocessed": "Je souhaite connaître le solde de mon compte.", 

150 "is_deleted": False, 

151 }, 

152 "10": { 

153 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

154 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

155 "text_preprocessed": "Le solde de mon compte en banque est-il dans le rouge ?", 

156 "is_deleted": False, 

157 }, 

158 "11": { 

159 "text_original": "Je voudrai connaître le solde de mes comptes.", 

160 "text": "Je voudrai connaître le solde de mes comptes.", 

161 "text_preprocessed": "Je voudrai connaître le solde de mes comptes.", 

162 "is_deleted": False, 

163 }, 

164 "12": { 

165 "text_original": "Quel est le solde de mon compte courant ?", 

166 "text": "Quel est le solde de mon compte courant ?", 

167 "text_preprocessed": "Quel est le solde de mon compte courant ?", 

168 "is_deleted": False, 

169 }, 

170 "13": { 

171 "text_original": "Quel est mon solde bancaire ?", 

172 "text": "Quel est mon solde bancaire ?", 

173 "text_preprocessed": "Quel est mon solde bancaire ?", 

174 "is_deleted": False, 

175 }, 

176 "14": { 

177 "text_original": "solde de mon compte en banque", 

178 "text": "solde de mon compte en banque", 

179 "text_preprocessed": "solde de mon compte en banque", 

180 "is_deleted": False, 

181 }, 

182 "15": { 

183 "text_original": "Mon solde bancaire est-il toujours positif ?", 

184 "text": "Mon solde bancaire est-il toujours positif ?", 

185 "text_preprocessed": "Mon solde bancaire est-il toujours positif ?", 

186 "is_deleted": False, 

187 }, 

188 "16": { 

189 "text_original": "carte bancaire avalée", 

190 "text": "carte bancaire avalée", 

191 "text_preprocessed": "carte bancaire avalée", 

192 "is_deleted": False, 

193 }, 

194 "17": { 

195 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

196 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

197 "text_preprocessed": "Le distributeur ne m'a pas rendu ma carte bleue.", 

198 "is_deleted": False, 

199 }, 

200 "18": { 

201 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

202 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

203 "text_preprocessed": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

204 "is_deleted": False, 

205 }, 

206 "19": { 

207 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

208 "text": "Le distributeur a confisqué ma carte de paiement...", 

209 "text_preprocessed": "Le distributeur a confisqué ma carte de paiement...", 

210 "is_deleted": False, 

211 }, 

212 "20": { 

213 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

214 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

215 "text_preprocessed": "Le GAB a gardé ma carte de crédit, que faire ?", 

216 "is_deleted": False, 

217 }, 

218 "21": { 

219 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

220 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

221 "text_preprocessed": "Pourquoi ma carte a-t-elle été avalée ?", 

222 "is_deleted": False, 

223 }, 

224 "22": { 

225 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

226 "text": "Que faire si je me suis fait avaler ma carte ?", 

227 "text_preprocessed": "Que faire si je me suis fait avaler ma carte ?", 

228 "is_deleted": False, 

229 }, 

230 "23": { 

231 "text_original": "récupérer carte bleue avalée par distributeur", 

232 "text": "récupérer carte bleue avalée par distributeur", 

233 "text_preprocessed": "récupérer carte bleue avalée par distributeur", 

234 "is_deleted": False, 

235 }, 

236 } 

237 

238 # Check modelization. 

239 assert "constraints_manager.pkl" not in os.listdir(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION") 

240 assert "vectors_2D.json" not in os.listdir(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION") 

241 assert "vectors_3D.json" not in os.listdir(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION") 

242 with open( 

243 tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

244 ) as modelization_before_fileobject: 

245 assert json.load(modelization_before_fileobject) == { 

246 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

247 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

248 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

249 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

250 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

251 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

252 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

253 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

254 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

255 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

256 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

257 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

258 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

259 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

260 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

261 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

262 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

263 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

264 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

265 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

266 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

267 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

268 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

269 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

270 } 

271 

272 # Run the task. 

273 fake_backgroundtasks.run_modelization_update_task( 

274 project_id="0b_INITIALIZATION_WITH_PENDING_MODELIZATION", 

275 ) 

276 

277 # Assert status is updated. 

278 with open(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION" / "status.json", "r") as status_after_fileobject: 

279 assert json.load(status_after_fileobject) == {"iteration_id": 0, "state": "CLUSTERING_TODO", "task": None} 

280 

281 # Assert texts is updated. 

282 with open(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION" / "texts.json", "r") as texts_after_fileobject: 

283 assert json.load(texts_after_fileobject) == { 

284 "0": { 

285 "text_original": "créer un numéro virtuel", 

286 "text": "créer un numéro virtuel", 

287 "text_preprocessed": "creer un numero virtuel", 

288 "is_deleted": False, 

289 }, 

290 "1": { 

291 "text_original": "activer les numéros de carte virtuelle", 

292 "text": "activer les numéros de carte virtuelle", 

293 "text_preprocessed": "activer les numeros de carte virtuelle", 

294 "is_deleted": False, 

295 }, 

296 "2": { 

297 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

298 "text": "Comment utiliser un numéro de carte virtuelle ?", 

299 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

300 "is_deleted": False, 

301 }, 

302 "3": { 

303 "text_original": "débloquer le paiement avec carte virtuelle", 

304 "text": "débloquer le paiement avec carte virtuelle", 

305 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

306 "is_deleted": False, 

307 }, 

308 "4": { 

309 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

310 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

311 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

312 "is_deleted": False, 

313 }, 

314 "5": { 

315 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

316 "text": "Où puis-je gérer mes numéros virtuels ?", 

317 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

318 "is_deleted": False, 

319 }, 

320 "6": { 

321 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

322 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

323 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

324 "is_deleted": False, 

325 }, 

326 "7": { 

327 "text_original": "supprimer un numéro de carte virtuel", 

328 "text": "supprimer un numéro de carte virtuel", 

329 "text_preprocessed": "supprimer un numero de carte virtuel", 

330 "is_deleted": False, 

331 }, 

332 "8": { 

333 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

334 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

335 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

336 "is_deleted": False, 

337 }, 

338 "9": { 

339 "text_original": "Je souhaite connaître le solde de mon compte.", 

340 "text": "Je souhaite connaître le solde de mon compte.", 

341 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

342 "is_deleted": False, 

343 }, 

344 "10": { 

345 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

346 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

347 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

348 "is_deleted": False, 

349 }, 

350 "11": { 

351 "text_original": "Je voudrai connaître le solde de mes comptes.", 

352 "text": "Je voudrai connaître le solde de mes comptes.", 

353 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

354 "is_deleted": False, 

355 }, 

356 "12": { 

357 "text_original": "Quel est le solde de mon compte courant ?", 

358 "text": "Quel est le solde de mon compte courant ?", 

359 "text_preprocessed": "quel est le solde de mon compte courant", 

360 "is_deleted": False, 

361 }, 

362 "13": { 

363 "text_original": "Quel est mon solde bancaire ?", 

364 "text": "Quel est mon solde bancaire ?", 

365 "text_preprocessed": "quel est mon solde bancaire", 

366 "is_deleted": False, 

367 }, 

368 "14": { 

369 "text_original": "solde de mon compte en banque", 

370 "text": "solde de mon compte en banque", 

371 "text_preprocessed": "solde de mon compte en banque", 

372 "is_deleted": False, 

373 }, 

374 "15": { 

375 "text_original": "Mon solde bancaire est-il toujours positif ?", 

376 "text": "Mon solde bancaire est-il toujours positif ?", 

377 "text_preprocessed": "mon solde bancaire est il toujours positif", 

378 "is_deleted": False, 

379 }, 

380 "16": { 

381 "text_original": "carte bancaire avalée", 

382 "text": "carte bancaire avalée", 

383 "text_preprocessed": "carte bancaire avalee", 

384 "is_deleted": False, 

385 }, 

386 "17": { 

387 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

388 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

389 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

390 "is_deleted": False, 

391 }, 

392 "18": { 

393 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

394 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

395 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

396 "is_deleted": False, 

397 }, 

398 "19": { 

399 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

400 "text": "Le distributeur a confisqué ma carte de paiement...", 

401 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

402 "is_deleted": False, 

403 }, 

404 "20": { 

405 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

406 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

407 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

408 "is_deleted": False, 

409 }, 

410 "21": { 

411 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

412 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

413 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

414 "is_deleted": False, 

415 }, 

416 "22": { 

417 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

418 "text": "Que faire si je me suis fait avaler ma carte ?", 

419 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

420 "is_deleted": False, 

421 }, 

422 "23": { 

423 "text_original": "récupérer carte bleue avalée par distributeur", 

424 "text": "récupérer carte bleue avalée par distributeur", 

425 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

426 "is_deleted": False, 

427 }, 

428 } 

429 

430 # Assert modelization is updated. 

431 assert "constraints_manager.pkl" in os.listdir(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION") 

432 assert "vectors_2D.json" in os.listdir(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION") 

433 assert "vectors_3D.json" in os.listdir(tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION") 

434 with open( 

435 tmp_path / "0b_INITIALIZATION_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

436 ) as modelization_after_fileobject: 

437 assert json.load(modelization_after_fileobject) == { 

438 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

439 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

440 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

441 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

442 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

443 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

444 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

445 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

446 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

447 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

448 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

449 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

450 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

451 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

452 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

453 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

454 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

455 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

456 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

457 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

458 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

459 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

460 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

461 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

462 } 

463 

464 

465# ============================================================================== 

466# test_ok_1b 

467# ============================================================================== 

468 

469 

470def test_ok_1b(fake_backgroundtasks, tmp_path): 

471 """ 

472 Test the `modelization update` task works. 

473 

474 Args: 

475 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

476 tmp_path: Pytest fixture: points to a temporary directory. 

477 """ 

478 

479 # Create dummy projects. 

480 create_dummy_projects( 

481 tmp_path=tmp_path, 

482 list_of_dummy_project_ids=[ 

483 "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION", 

484 ], 

485 ) 

486 

487 # Check texts. 

488 with open( 

489 tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

490 ) as texts_before_fileobject: 

491 assert json.load(texts_before_fileobject) == { 

492 "0": { 

493 "text_original": "créer un numéro virtuel", 

494 "text": "créer un numéro virtuel", 

495 "text_preprocessed": "créer un numéro virtuel", 

496 "is_deleted": False, 

497 }, 

498 "1": { 

499 "text_original": "activer les numéros de carte virtuelle", 

500 "text": "activer les numéros de carte virtuelle", 

501 "text_preprocessed": "activer les numéros de carte virtuelle", 

502 "is_deleted": False, 

503 }, 

504 "2": { 

505 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

506 "text": "Comment utiliser un numéro de carte virtuelle ?", 

507 "text_preprocessed": "Comment utiliser un numéro de carte virtuelle ?", 

508 "is_deleted": False, 

509 }, 

510 "3": { 

511 "text_original": "débloquer le paiement avec carte virtuelle", 

512 "text": "débloquer le paiement avec carte virtuelle", 

513 "text_preprocessed": "débloquer le paiement avec carte virtuelle", 

514 "is_deleted": False, 

515 }, 

516 "4": { 

517 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

518 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

519 "text_preprocessed": "obtenir un numéro virtuel pour mes achats en ligne", 

520 "is_deleted": False, 

521 }, 

522 "5": { 

523 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

524 "text": "Où puis-je gérer mes numéros virtuels ?", 

525 "text_preprocessed": "Où puis-je gérer mes numéros virtuels ?", 

526 "is_deleted": False, 

527 }, 

528 "6": { 

529 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

530 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

531 "text_preprocessed": "Que faire pour activer une carte bancaire virtuelle ?", 

532 "is_deleted": False, 

533 }, 

534 "7": { 

535 "text_original": "supprimer un numéro de carte virtuel", 

536 "text": "supprimer un numéro de carte virtuel", 

537 "text_preprocessed": "supprimer un numéro de carte virtuel", 

538 "is_deleted": False, 

539 }, 

540 "8": { 

541 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

542 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

543 "text_preprocessed": "Combien d'argent me reste-t-il sur mon compte ?", 

544 "is_deleted": False, 

545 }, 

546 "9": { 

547 "text_original": "Je souhaite connaître le solde de mon compte.", 

548 "text": "Je souhaite connaître le solde de mon compte.", 

549 "text_preprocessed": "Je souhaite connaître le solde de mon compte.", 

550 "is_deleted": False, 

551 }, 

552 "10": { 

553 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

554 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

555 "text_preprocessed": "Le solde de mon compte en banque est-il dans le rouge ?", 

556 "is_deleted": False, 

557 }, 

558 "11": { 

559 "text_original": "Je voudrai connaître le solde de mes comptes.", 

560 "text": "Je voudrai connaître le solde de mes comptes.", 

561 "text_preprocessed": "Je voudrai connaître le solde de mes comptes.", 

562 "is_deleted": False, 

563 }, 

564 "12": { 

565 "text_original": "Quel est le solde de mon compte courant ?", 

566 "text": "Quel est le solde de mon compte courant ?", 

567 "text_preprocessed": "Quel est le solde de mon compte courant ?", 

568 "is_deleted": False, 

569 }, 

570 "13": { 

571 "text_original": "Quel est mon solde bancaire ?", 

572 "text": "Quel est mon solde bancaire ?", 

573 "text_preprocessed": "Quel est mon solde bancaire ?", 

574 "is_deleted": False, 

575 }, 

576 "14": { 

577 "text_original": "solde de mon compte en banque", 

578 "text": "solde de mon compte en banque", 

579 "text_preprocessed": "solde de mon compte en banque", 

580 "is_deleted": False, 

581 }, 

582 "15": { 

583 "text_original": "Mon solde bancaire est-il toujours positif ?", 

584 "text": "Mon solde bancaire est-il toujours positif ?", 

585 "text_preprocessed": "Mon solde bancaire est-il toujours positif ?", 

586 "is_deleted": False, 

587 }, 

588 "16": { 

589 "text_original": "carte bancaire avalée", 

590 "text": "carte bancaire avalée", 

591 "text_preprocessed": "carte bancaire avalée", 

592 "is_deleted": False, 

593 }, 

594 "17": { 

595 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

596 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

597 "text_preprocessed": "Le distributeur ne m'a pas rendu ma carte bleue.", 

598 "is_deleted": False, 

599 }, 

600 "18": { 

601 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

602 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

603 "text_preprocessed": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

604 "is_deleted": False, 

605 }, 

606 "19": { 

607 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

608 "text": "Le distributeur a confisqué ma carte de paiement...", 

609 "text_preprocessed": "Le distributeur a confisqué ma carte de paiement...", 

610 "is_deleted": False, 

611 }, 

612 "20": { 

613 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

614 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

615 "text_preprocessed": "Le GAB a gardé ma carte de crédit, que faire ?", 

616 "is_deleted": False, 

617 }, 

618 "21": { 

619 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

620 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

621 "text_preprocessed": "Pourquoi ma carte a-t-elle été avalée ?", 

622 "is_deleted": False, 

623 }, 

624 "22": { 

625 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

626 "text": "Que faire si je me suis fait avaler ma carte ?", 

627 "text_preprocessed": "Que faire si je me suis fait avaler ma carte ?", 

628 "is_deleted": False, 

629 }, 

630 "23": { 

631 "text_original": "récupérer carte bleue avalée par distributeur", 

632 "text": "récupérer carte bleue avalée par distributeur", 

633 "text_preprocessed": "récupérer carte bleue avalée par distributeur", 

634 "is_deleted": False, 

635 }, 

636 } 

637 

638 # Check modelization. 

639 assert "constraints_manager.pkl" not in os.listdir(tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

640 assert "vectors_2D.json" not in os.listdir(tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

641 assert "vectors_3D.json" not in os.listdir(tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

642 with open( 

643 tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

644 ) as modelization_before_fileobject: 

645 assert json.load(modelization_before_fileobject) == { 

646 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

647 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

648 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

649 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

650 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

651 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

652 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

653 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

654 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

655 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

656 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

657 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

658 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

659 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

660 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

661 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

662 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

663 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

664 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

665 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

666 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

667 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

668 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

669 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

670 } 

671 

672 # Run the task. 

673 fake_backgroundtasks.run_modelization_update_task( 

674 project_id="import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION", 

675 ) 

676 

677 # Assert status is updated. 

678 with open( 

679 tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "status.json", "r" 

680 ) as status_after_fileobject: 

681 assert json.load(status_after_fileobject) == {"iteration_id": 0, "state": "CLUSTERING_TODO", "task": None} 

682 

683 # Assert texts is updated. 

684 with open( 

685 tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

686 ) as texts_after_fileobject: 

687 assert json.load(texts_after_fileobject) == { 

688 "0": { 

689 "text_original": "créer un numéro virtuel", 

690 "text": "créer un numéro virtuel", 

691 "text_preprocessed": "creer un numero virtuel", 

692 "is_deleted": False, 

693 }, 

694 "1": { 

695 "text_original": "activer les numéros de carte virtuelle", 

696 "text": "activer les numéros de carte virtuelle", 

697 "text_preprocessed": "activer les numeros de carte virtuelle", 

698 "is_deleted": False, 

699 }, 

700 "2": { 

701 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

702 "text": "Comment utiliser un numéro de carte virtuelle ?", 

703 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

704 "is_deleted": False, 

705 }, 

706 "3": { 

707 "text_original": "débloquer le paiement avec carte virtuelle", 

708 "text": "débloquer le paiement avec carte virtuelle", 

709 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

710 "is_deleted": False, 

711 }, 

712 "4": { 

713 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

714 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

715 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

716 "is_deleted": False, 

717 }, 

718 "5": { 

719 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

720 "text": "Où puis-je gérer mes numéros virtuels ?", 

721 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

722 "is_deleted": False, 

723 }, 

724 "6": { 

725 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

726 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

727 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

728 "is_deleted": False, 

729 }, 

730 "7": { 

731 "text_original": "supprimer un numéro de carte virtuel", 

732 "text": "supprimer un numéro de carte virtuel", 

733 "text_preprocessed": "supprimer un numero de carte virtuel", 

734 "is_deleted": False, 

735 }, 

736 "8": { 

737 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

738 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

739 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

740 "is_deleted": False, 

741 }, 

742 "9": { 

743 "text_original": "Je souhaite connaître le solde de mon compte.", 

744 "text": "Je souhaite connaître le solde de mon compte.", 

745 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

746 "is_deleted": False, 

747 }, 

748 "10": { 

749 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

750 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

751 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

752 "is_deleted": False, 

753 }, 

754 "11": { 

755 "text_original": "Je voudrai connaître le solde de mes comptes.", 

756 "text": "Je voudrai connaître le solde de mes comptes.", 

757 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

758 "is_deleted": False, 

759 }, 

760 "12": { 

761 "text_original": "Quel est le solde de mon compte courant ?", 

762 "text": "Quel est le solde de mon compte courant ?", 

763 "text_preprocessed": "quel est le solde de mon compte courant", 

764 "is_deleted": False, 

765 }, 

766 "13": { 

767 "text_original": "Quel est mon solde bancaire ?", 

768 "text": "Quel est mon solde bancaire ?", 

769 "text_preprocessed": "quel est mon solde bancaire", 

770 "is_deleted": False, 

771 }, 

772 "14": { 

773 "text_original": "solde de mon compte en banque", 

774 "text": "solde de mon compte en banque", 

775 "text_preprocessed": "solde de mon compte en banque", 

776 "is_deleted": False, 

777 }, 

778 "15": { 

779 "text_original": "Mon solde bancaire est-il toujours positif ?", 

780 "text": "Mon solde bancaire est-il toujours positif ?", 

781 "text_preprocessed": "mon solde bancaire est il toujours positif", 

782 "is_deleted": False, 

783 }, 

784 "16": { 

785 "text_original": "carte bancaire avalée", 

786 "text": "carte bancaire avalée", 

787 "text_preprocessed": "carte bancaire avalee", 

788 "is_deleted": False, 

789 }, 

790 "17": { 

791 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

792 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

793 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

794 "is_deleted": False, 

795 }, 

796 "18": { 

797 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

798 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

799 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

800 "is_deleted": False, 

801 }, 

802 "19": { 

803 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

804 "text": "Le distributeur a confisqué ma carte de paiement...", 

805 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

806 "is_deleted": False, 

807 }, 

808 "20": { 

809 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

810 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

811 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

812 "is_deleted": False, 

813 }, 

814 "21": { 

815 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

816 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

817 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

818 "is_deleted": False, 

819 }, 

820 "22": { 

821 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

822 "text": "Que faire si je me suis fait avaler ma carte ?", 

823 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

824 "is_deleted": False, 

825 }, 

826 "23": { 

827 "text_original": "récupérer carte bleue avalée par distributeur", 

828 "text": "récupérer carte bleue avalée par distributeur", 

829 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

830 "is_deleted": False, 

831 }, 

832 } 

833 

834 # Assert modelization is updated. 

835 assert "constraints_manager.pkl" in os.listdir(tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

836 assert "vectors_2D.json" in os.listdir(tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

837 assert "vectors_3D.json" in os.listdir(tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

838 with open( 

839 tmp_path / "import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

840 ) as modelization_after_fileobject: 

841 assert json.load(modelization_after_fileobject) == { 

842 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

843 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

844 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

845 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

846 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

847 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

848 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

849 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

850 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

851 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

852 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

853 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

854 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

855 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

856 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

857 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

858 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

859 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

860 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

861 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

862 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

863 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

864 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

865 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

866 } 

867 

868 

869# ============================================================================== 

870# test_ok_2 

871# ============================================================================== 

872 

873 

874def test_ok_2(fake_backgroundtasks, tmp_path): 

875 """ 

876 Test the `modelization update` task works. 

877 

878 Args: 

879 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

880 tmp_path: Pytest fixture: points to a temporary directory. 

881 """ 

882 

883 # Create dummy projects. 

884 create_dummy_projects( 

885 tmp_path=tmp_path, 

886 list_of_dummy_project_ids=[ 

887 "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION", 

888 ], 

889 ) 

890 

891 # Check texts. 

892 with open( 

893 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

894 ) as texts_before_fileobject: 

895 assert json.load(texts_before_fileobject) == { 

896 "0": { 

897 "text_original": "créer un numéro virtuel", 

898 "text": "créer un numéro virtuel", 

899 "text_preprocessed": "creer un numero virtuel", 

900 "is_deleted": False, 

901 }, 

902 "1": { 

903 "text_original": "activer les numéros de carte virtuelle", 

904 "text": "activer les numéros de carte virtuelle", 

905 "text_preprocessed": "activer les numeros de carte virtuelle", 

906 "is_deleted": False, 

907 }, 

908 "2": { 

909 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

910 "text": "Comment utiliser un numéro de carte virtuelle ?", 

911 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

912 "is_deleted": False, 

913 }, 

914 "3": { 

915 "text_original": "débloquer le paiement avec carte virtuelle", 

916 "text": "débloquer le paiement avec carte virtuelle", 

917 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

918 "is_deleted": False, 

919 }, 

920 "4": { 

921 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

922 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

923 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

924 "is_deleted": False, 

925 }, 

926 "5": { 

927 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

928 "text": "Où puis-je gérer mes numéros virtuels ?", 

929 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

930 "is_deleted": False, 

931 }, 

932 "6": { 

933 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

934 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

935 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

936 "is_deleted": False, 

937 }, 

938 "7": { 

939 "text_original": "supprimer un numéro de carte virtuel", 

940 "text": "supprimer un numéro de carte virtuel", 

941 "text_preprocessed": "supprimer un numero de carte virtuel", 

942 "is_deleted": False, 

943 }, 

944 "8": { 

945 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

946 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

947 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

948 "is_deleted": False, 

949 }, 

950 "9": { 

951 "text_original": "Je souhaite connaître le solde de mon compte.", 

952 "text": "Je souhaite connaître le solde de mon compte.", 

953 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

954 "is_deleted": False, 

955 }, 

956 "10": { 

957 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

958 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

959 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

960 "is_deleted": False, 

961 }, 

962 "11": { 

963 "text_original": "Je voudrai connaître le solde de mes comptes.", 

964 "text": "Je voudrai connaître le solde de mes comptes.", 

965 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

966 "is_deleted": False, 

967 }, 

968 "12": { 

969 "text_original": "Quel est le solde de mon compte courant ?", 

970 "text": "Quel est le solde de mon compte courant ?", 

971 "text_preprocessed": "quel est le solde de mon compte courant", 

972 "is_deleted": False, 

973 }, 

974 "13": { 

975 "text_original": "Quel est mon solde bancaire ?", 

976 "text": "Quel est mon solde bancaire ?", 

977 "text_preprocessed": "quel est mon solde bancaire", 

978 "is_deleted": False, 

979 }, 

980 "14": { 

981 "text_original": "solde de mon compte en banque", 

982 "text": "solde de mon compte en banque", 

983 "text_preprocessed": "solde de mon compte en banque", 

984 "is_deleted": False, 

985 }, 

986 "15": { 

987 "text_original": "Mon solde bancaire est-il toujours positif ?", 

988 "text": "Mon solde bancaire est-il toujours positif ?", 

989 "text_preprocessed": "mon solde bancaire est il toujours positif", 

990 "is_deleted": False, 

991 }, 

992 "16": { 

993 "text_original": "carte bancaire avalée", 

994 "text": "carte bancaire avalée", 

995 "text_preprocessed": "carte bancaire avalee", 

996 "is_deleted": False, 

997 }, 

998 "17": { 

999 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1000 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1001 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

1002 "is_deleted": False, 

1003 }, 

1004 "18": { 

1005 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1006 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1007 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

1008 "is_deleted": False, 

1009 }, 

1010 "19": { 

1011 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

1012 "text": "Le distributeur a confisqué ma carte de paiement...", 

1013 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

1014 "is_deleted": False, 

1015 }, 

1016 "20": { 

1017 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

1018 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

1019 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

1020 "is_deleted": False, 

1021 }, 

1022 "21": { 

1023 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

1024 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

1025 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

1026 "is_deleted": False, 

1027 }, 

1028 "22": { 

1029 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

1030 "text": "Que faire si je me suis fait avaler ma carte ?", 

1031 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

1032 "is_deleted": False, 

1033 }, 

1034 "23": { 

1035 "text_original": "récupérer carte bleue avalée par distributeur", 

1036 "text": "récupérer carte bleue avalée par distributeur", 

1037 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

1038 "is_deleted": False, 

1039 }, 

1040 } 

1041 

1042 # Check modelization. 

1043 assert "constraints_manager.pkl" not in os.listdir( 

1044 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

1045 ) 

1046 assert "vectors_2D.json" not in os.listdir( 

1047 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

1048 ) 

1049 assert "vectors_3D.json" not in os.listdir( 

1050 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

1051 ) 

1052 with open( 

1053 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

1054 ) as modelization_before_fileobject: 

1055 assert json.load(modelization_before_fileobject) == { 

1056 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

1057 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

1058 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

1059 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

1060 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

1061 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

1062 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

1063 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

1064 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

1065 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

1066 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

1067 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

1068 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

1069 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

1070 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

1071 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

1072 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

1073 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

1074 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

1075 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

1076 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

1077 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

1078 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

1079 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

1080 } 

1081 

1082 # Run the task. 

1083 fake_backgroundtasks.run_modelization_update_task( 

1084 project_id="import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION", 

1085 ) 

1086 

1087 # Assert status is updated. 

1088 with open( 

1089 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "status.json", "r" 

1090 ) as status_after_fileobject: 

1091 assert json.load(status_after_fileobject) == {"iteration_id": 1, "state": "SAMPLING_TODO", "task": None} 

1092 

1093 # Assert texts is updated. 

1094 with open( 

1095 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

1096 ) as texts_after_fileobject: 

1097 assert json.load(texts_after_fileobject) == { 

1098 "0": { 

1099 "text_original": "créer un numéro virtuel", 

1100 "text": "créer un numéro virtuel", 

1101 "text_preprocessed": "creer un numero virtuel", 

1102 "is_deleted": False, 

1103 }, 

1104 "1": { 

1105 "text_original": "activer les numéros de carte virtuelle", 

1106 "text": "activer les numéros de carte virtuelle", 

1107 "text_preprocessed": "activer les numeros de carte virtuelle", 

1108 "is_deleted": False, 

1109 }, 

1110 "2": { 

1111 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

1112 "text": "Comment utiliser un numéro de carte virtuelle ?", 

1113 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

1114 "is_deleted": False, 

1115 }, 

1116 "3": { 

1117 "text_original": "débloquer le paiement avec carte virtuelle", 

1118 "text": "débloquer le paiement avec carte virtuelle", 

1119 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

1120 "is_deleted": False, 

1121 }, 

1122 "4": { 

1123 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

1124 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

1125 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

1126 "is_deleted": False, 

1127 }, 

1128 "5": { 

1129 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

1130 "text": "Où puis-je gérer mes numéros virtuels ?", 

1131 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

1132 "is_deleted": False, 

1133 }, 

1134 "6": { 

1135 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

1136 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

1137 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

1138 "is_deleted": False, 

1139 }, 

1140 "7": { 

1141 "text_original": "supprimer un numéro de carte virtuel", 

1142 "text": "supprimer un numéro de carte virtuel", 

1143 "text_preprocessed": "supprimer un numero de carte virtuel", 

1144 "is_deleted": False, 

1145 }, 

1146 "8": { 

1147 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

1148 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

1149 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

1150 "is_deleted": False, 

1151 }, 

1152 "9": { 

1153 "text_original": "Je souhaite connaître le solde de mon compte.", 

1154 "text": "Je souhaite connaître le solde de mon compte.", 

1155 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

1156 "is_deleted": False, 

1157 }, 

1158 "10": { 

1159 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

1160 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

1161 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

1162 "is_deleted": False, 

1163 }, 

1164 "11": { 

1165 "text_original": "Je voudrai connaître le solde de mes comptes.", 

1166 "text": "Je voudrai connaître le solde de mes comptes.", 

1167 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

1168 "is_deleted": False, 

1169 }, 

1170 "12": { 

1171 "text_original": "Quel est le solde de mon compte courant ?", 

1172 "text": "Quel est le solde de mon compte courant ?", 

1173 "text_preprocessed": "quel est le solde de mon compte courant", 

1174 "is_deleted": False, 

1175 }, 

1176 "13": { 

1177 "text_original": "Quel est mon solde bancaire ?", 

1178 "text": "Quel est mon solde bancaire ?", 

1179 "text_preprocessed": "quel est mon solde bancaire", 

1180 "is_deleted": False, 

1181 }, 

1182 "14": { 

1183 "text_original": "solde de mon compte en banque", 

1184 "text": "solde de mon compte en banque", 

1185 "text_preprocessed": "solde de mon compte en banque", 

1186 "is_deleted": False, 

1187 }, 

1188 "15": { 

1189 "text_original": "Mon solde bancaire est-il toujours positif ?", 

1190 "text": "Mon solde bancaire est-il toujours positif ?", 

1191 "text_preprocessed": "mon solde bancaire est il toujours positif", 

1192 "is_deleted": False, 

1193 }, 

1194 "16": { 

1195 "text_original": "carte bancaire avalée", 

1196 "text": "carte bancaire avalée", 

1197 "text_preprocessed": "carte bancaire avalee", 

1198 "is_deleted": False, 

1199 }, 

1200 "17": { 

1201 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1202 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1203 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

1204 "is_deleted": False, 

1205 }, 

1206 "18": { 

1207 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1208 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1209 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

1210 "is_deleted": False, 

1211 }, 

1212 "19": { 

1213 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

1214 "text": "Le distributeur a confisqué ma carte de paiement...", 

1215 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

1216 "is_deleted": False, 

1217 }, 

1218 "20": { 

1219 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

1220 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

1221 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

1222 "is_deleted": False, 

1223 }, 

1224 "21": { 

1225 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

1226 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

1227 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

1228 "is_deleted": False, 

1229 }, 

1230 "22": { 

1231 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

1232 "text": "Que faire si je me suis fait avaler ma carte ?", 

1233 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

1234 "is_deleted": False, 

1235 }, 

1236 "23": { 

1237 "text_original": "récupérer carte bleue avalée par distributeur", 

1238 "text": "récupérer carte bleue avalée par distributeur", 

1239 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

1240 "is_deleted": False, 

1241 }, 

1242 } 

1243 

1244 # Assert modelization is updated. 

1245 assert "constraints_manager.pkl" in os.listdir( 

1246 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

1247 ) 

1248 assert "vectors_2D.json" in os.listdir(tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION") 

1249 assert "vectors_3D.json" in os.listdir(tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION") 

1250 with open( 

1251 tmp_path / "import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

1252 ) as modelization_after_fileobject: 

1253 assert json.load(modelization_after_fileobject) == { 

1254 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

1255 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

1256 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

1257 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

1258 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

1259 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

1260 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

1261 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

1262 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

1263 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

1264 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

1265 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

1266 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

1267 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

1268 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

1269 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

1270 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

1271 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

1272 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

1273 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

1274 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

1275 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

1276 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

1277 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

1278 } 

1279 

1280 

1281# ============================================================================== 

1282# test_ok_3 

1283# ============================================================================== 

1284 

1285 

1286def test_ok_3(fake_backgroundtasks, tmp_path): 

1287 """ 

1288 Test the `modelization update` task works. 

1289 

1290 Args: 

1291 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

1292 tmp_path: Pytest fixture: points to a temporary directory. 

1293 """ 

1294 

1295 # Create dummy projects. 

1296 create_dummy_projects( 

1297 tmp_path=tmp_path, 

1298 list_of_dummy_project_ids=[ 

1299 "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION", 

1300 ], 

1301 ) 

1302 

1303 # Check texts. 

1304 with open( 

1305 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

1306 ) as texts_before_fileobject: 

1307 assert json.load(texts_before_fileobject) == { 

1308 "0": { 

1309 "text_original": "créer un numéro virtuel", 

1310 "text": "créer un numéro virtuel", 

1311 "text_preprocessed": "creer un numero virtuel", 

1312 "is_deleted": False, 

1313 }, 

1314 "1": { 

1315 "text_original": "activer les numéros de carte virtuelle", 

1316 "text": "activer les numéros de carte virtuelle", 

1317 "text_preprocessed": "activer les numeros de carte virtuelle", 

1318 "is_deleted": False, 

1319 }, 

1320 "2": { 

1321 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

1322 "text": "Comment utiliser un numéro de carte virtuelle ?", 

1323 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

1324 "is_deleted": False, 

1325 }, 

1326 "3": { 

1327 "text_original": "débloquer le paiement avec carte virtuelle", 

1328 "text": "débloquer le paiement avec carte virtuelle", 

1329 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

1330 "is_deleted": False, 

1331 }, 

1332 "4": { 

1333 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

1334 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

1335 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

1336 "is_deleted": False, 

1337 }, 

1338 "5": { 

1339 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

1340 "text": "Où puis-je gérer mes numéros virtuels ?", 

1341 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

1342 "is_deleted": False, 

1343 }, 

1344 "6": { 

1345 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

1346 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

1347 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

1348 "is_deleted": False, 

1349 }, 

1350 "7": { 

1351 "text_original": "supprimer un numéro de carte virtuel", 

1352 "text": "supprimer un numéro de carte virtuel", 

1353 "text_preprocessed": "supprimer un numero de carte virtuel", 

1354 "is_deleted": False, 

1355 }, 

1356 "8": { 

1357 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

1358 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

1359 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

1360 "is_deleted": False, 

1361 }, 

1362 "9": { 

1363 "text_original": "Je souhaite connaître le solde de mon compte.", 

1364 "text": "Je souhaite connaître le solde de mon compte.", 

1365 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

1366 "is_deleted": False, 

1367 }, 

1368 "10": { 

1369 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

1370 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

1371 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

1372 "is_deleted": False, 

1373 }, 

1374 "11": { 

1375 "text_original": "Je voudrai connaître le solde de mes comptes.", 

1376 "text": "Je voudrai connaître le solde de mes comptes.", 

1377 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

1378 "is_deleted": False, 

1379 }, 

1380 "12": { 

1381 "text_original": "Quel est le solde de mon compte courant ?", 

1382 "text": "Quel est le solde de mon compte courant ?", 

1383 "text_preprocessed": "quel est le solde de mon compte courant", 

1384 "is_deleted": False, 

1385 }, 

1386 "13": { 

1387 "text_original": "Quel est mon solde bancaire ?", 

1388 "text": "Quel est mon solde bancaire ?", 

1389 "text_preprocessed": "quel est mon solde bancaire", 

1390 "is_deleted": False, 

1391 }, 

1392 "14": { 

1393 "text_original": "solde de mon compte en banque", 

1394 "text": "solde de mon compte en banque", 

1395 "text_preprocessed": "solde de mon compte en banque", 

1396 "is_deleted": False, 

1397 }, 

1398 "15": { 

1399 "text_original": "Mon solde bancaire est-il toujours positif ?", 

1400 "text": "Mon solde bancaire est-il toujours positif ?", 

1401 "text_preprocessed": "mon solde bancaire est il toujours positif", 

1402 "is_deleted": False, 

1403 }, 

1404 "16": { 

1405 "text_original": "carte bancaire avalée", 

1406 "text": "carte bancaire avalée", 

1407 "text_preprocessed": "carte bancaire avalee", 

1408 "is_deleted": False, 

1409 }, 

1410 "17": { 

1411 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1412 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1413 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

1414 "is_deleted": False, 

1415 }, 

1416 "18": { 

1417 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1418 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1419 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

1420 "is_deleted": False, 

1421 }, 

1422 "19": { 

1423 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

1424 "text": "Le distributeur a confisqué ma carte de paiement...", 

1425 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

1426 "is_deleted": False, 

1427 }, 

1428 "20": { 

1429 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

1430 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

1431 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

1432 "is_deleted": False, 

1433 }, 

1434 "21": { 

1435 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

1436 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

1437 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

1438 "is_deleted": False, 

1439 }, 

1440 "22": { 

1441 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

1442 "text": "Que faire si je me suis fait avaler ma carte ?", 

1443 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

1444 "is_deleted": False, 

1445 }, 

1446 "23": { 

1447 "text_original": "récupérer carte bleue avalée par distributeur", 

1448 "text": "récupérer carte bleue avalée par distributeur", 

1449 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

1450 "is_deleted": False, 

1451 }, 

1452 } 

1453 

1454 # Check modelization. 

1455 assert "constraints_manager.pkl" not in os.listdir( 

1456 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

1457 ) 

1458 assert "vectors_2D.json" not in os.listdir( 

1459 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

1460 ) 

1461 assert "vectors_3D.json" not in os.listdir( 

1462 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

1463 ) 

1464 with open( 

1465 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

1466 ) as modelization_before_fileobject: 

1467 assert json.load(modelization_before_fileobject) == { 

1468 "0": { 

1469 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1470 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1471 "COMPONENT": 0, 

1472 }, 

1473 "1": { 

1474 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1475 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1476 "COMPONENT": 0, 

1477 }, 

1478 "2": { 

1479 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1480 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1481 "COMPONENT": 0, 

1482 }, 

1483 "3": { 

1484 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1485 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1486 "COMPONENT": 0, 

1487 }, 

1488 "4": { 

1489 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1490 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1491 "COMPONENT": 0, 

1492 }, 

1493 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

1494 "6": { 

1495 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1496 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1497 "COMPONENT": 0, 

1498 }, 

1499 "7": { 

1500 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1501 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1502 "COMPONENT": 0, 

1503 }, 

1504 "8": { 

1505 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1506 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1507 "COMPONENT": 2, 

1508 }, 

1509 "9": { 

1510 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1511 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1512 "COMPONENT": 2, 

1513 }, 

1514 "10": { 

1515 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1516 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1517 "COMPONENT": 2, 

1518 }, 

1519 "11": { 

1520 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1521 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1522 "COMPONENT": 2, 

1523 }, 

1524 "12": { 

1525 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1526 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1527 "COMPONENT": 2, 

1528 }, 

1529 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 3}, 

1530 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 4}, 

1531 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

1532 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

1533 "17": { 

1534 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1535 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1536 "COMPONENT": 7, 

1537 }, 

1538 "18": { 

1539 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1540 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1541 "COMPONENT": 7, 

1542 }, 

1543 "19": { 

1544 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1545 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1546 "COMPONENT": 7, 

1547 }, 

1548 "20": { 

1549 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1550 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1551 "COMPONENT": 7, 

1552 }, 

1553 "21": { 

1554 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1555 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1556 "COMPONENT": 7, 

1557 }, 

1558 "22": { 

1559 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1560 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1561 "COMPONENT": 7, 

1562 }, 

1563 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

1564 } 

1565 

1566 # Run the task. 

1567 fake_backgroundtasks.run_modelization_update_task( 

1568 project_id="import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION", 

1569 ) 

1570 

1571 # Assert status is updated. 

1572 with open( 

1573 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "status.json", "r" 

1574 ) as status_after_fileobject: 

1575 assert json.load(status_after_fileobject) == { 

1576 "iteration_id": 1, 

1577 "state": "ANNOTATION_WITH_UPTODATE_MODELIZATION", 

1578 "task": None, 

1579 } 

1580 

1581 # Assert texts is updated. 

1582 with open( 

1583 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

1584 ) as texts_after_fileobject: 

1585 assert json.load(texts_after_fileobject) == { 

1586 "0": { 

1587 "text_original": "créer un numéro virtuel", 

1588 "text": "créer un numéro virtuel", 

1589 "text_preprocessed": "creer un numero virtuel", 

1590 "is_deleted": False, 

1591 }, 

1592 "1": { 

1593 "text_original": "activer les numéros de carte virtuelle", 

1594 "text": "activer les numéros de carte virtuelle", 

1595 "text_preprocessed": "activer les numeros de carte virtuelle", 

1596 "is_deleted": False, 

1597 }, 

1598 "2": { 

1599 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

1600 "text": "Comment utiliser un numéro de carte virtuelle ?", 

1601 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

1602 "is_deleted": False, 

1603 }, 

1604 "3": { 

1605 "text_original": "débloquer le paiement avec carte virtuelle", 

1606 "text": "débloquer le paiement avec carte virtuelle", 

1607 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

1608 "is_deleted": False, 

1609 }, 

1610 "4": { 

1611 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

1612 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

1613 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

1614 "is_deleted": False, 

1615 }, 

1616 "5": { 

1617 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

1618 "text": "Où puis-je gérer mes numéros virtuels ?", 

1619 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

1620 "is_deleted": False, 

1621 }, 

1622 "6": { 

1623 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

1624 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

1625 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

1626 "is_deleted": False, 

1627 }, 

1628 "7": { 

1629 "text_original": "supprimer un numéro de carte virtuel", 

1630 "text": "supprimer un numéro de carte virtuel", 

1631 "text_preprocessed": "supprimer un numero de carte virtuel", 

1632 "is_deleted": False, 

1633 }, 

1634 "8": { 

1635 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

1636 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

1637 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

1638 "is_deleted": False, 

1639 }, 

1640 "9": { 

1641 "text_original": "Je souhaite connaître le solde de mon compte.", 

1642 "text": "Je souhaite connaître le solde de mon compte.", 

1643 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

1644 "is_deleted": False, 

1645 }, 

1646 "10": { 

1647 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

1648 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

1649 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

1650 "is_deleted": False, 

1651 }, 

1652 "11": { 

1653 "text_original": "Je voudrai connaître le solde de mes comptes.", 

1654 "text": "Je voudrai connaître le solde de mes comptes.", 

1655 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

1656 "is_deleted": False, 

1657 }, 

1658 "12": { 

1659 "text_original": "Quel est le solde de mon compte courant ?", 

1660 "text": "Quel est le solde de mon compte courant ?", 

1661 "text_preprocessed": "quel est le solde de mon compte courant", 

1662 "is_deleted": False, 

1663 }, 

1664 "13": { 

1665 "text_original": "Quel est mon solde bancaire ?", 

1666 "text": "Quel est mon solde bancaire ?", 

1667 "text_preprocessed": "quel est mon solde bancaire", 

1668 "is_deleted": False, 

1669 }, 

1670 "14": { 

1671 "text_original": "solde de mon compte en banque", 

1672 "text": "solde de mon compte en banque", 

1673 "text_preprocessed": "solde de mon compte en banque", 

1674 "is_deleted": False, 

1675 }, 

1676 "15": { 

1677 "text_original": "Mon solde bancaire est-il toujours positif ?", 

1678 "text": "Mon solde bancaire est-il toujours positif ?", 

1679 "text_preprocessed": "mon solde bancaire est il toujours positif", 

1680 "is_deleted": False, 

1681 }, 

1682 "16": { 

1683 "text_original": "carte bancaire avalée", 

1684 "text": "carte bancaire avalée", 

1685 "text_preprocessed": "carte bancaire avalee", 

1686 "is_deleted": False, 

1687 }, 

1688 "17": { 

1689 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1690 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1691 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

1692 "is_deleted": False, 

1693 }, 

1694 "18": { 

1695 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1696 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1697 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

1698 "is_deleted": False, 

1699 }, 

1700 "19": { 

1701 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

1702 "text": "Le distributeur a confisqué ma carte de paiement...", 

1703 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

1704 "is_deleted": False, 

1705 }, 

1706 "20": { 

1707 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

1708 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

1709 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

1710 "is_deleted": False, 

1711 }, 

1712 "21": { 

1713 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

1714 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

1715 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

1716 "is_deleted": False, 

1717 }, 

1718 "22": { 

1719 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

1720 "text": "Que faire si je me suis fait avaler ma carte ?", 

1721 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

1722 "is_deleted": False, 

1723 }, 

1724 "23": { 

1725 "text_original": "récupérer carte bleue avalée par distributeur", 

1726 "text": "récupérer carte bleue avalée par distributeur", 

1727 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

1728 "is_deleted": False, 

1729 }, 

1730 } 

1731 

1732 # Assert modelization is updated. 

1733 assert "constraints_manager.pkl" in os.listdir( 

1734 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

1735 ) 

1736 assert "vectors_2D.json" in os.listdir(tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION") 

1737 assert "vectors_3D.json" in os.listdir(tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION") 

1738 with open( 

1739 tmp_path / "import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

1740 ) as modelization_after_fileobject: 

1741 assert json.load(modelization_after_fileobject) == { 

1742 "0": { 

1743 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1744 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1745 "COMPONENT": 0, 

1746 }, 

1747 "1": { 

1748 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1749 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1750 "COMPONENT": 0, 

1751 }, 

1752 "2": { 

1753 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1754 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1755 "COMPONENT": 0, 

1756 }, 

1757 "3": { 

1758 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1759 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1760 "COMPONENT": 0, 

1761 }, 

1762 "4": { 

1763 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1764 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1765 "COMPONENT": 0, 

1766 }, 

1767 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

1768 "6": { 

1769 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1770 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1771 "COMPONENT": 0, 

1772 }, 

1773 "7": { 

1774 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

1775 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

1776 "COMPONENT": 0, 

1777 }, 

1778 "8": { 

1779 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1780 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1781 "COMPONENT": 2, 

1782 }, 

1783 "9": { 

1784 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1785 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1786 "COMPONENT": 2, 

1787 }, 

1788 "10": { 

1789 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1790 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1791 "COMPONENT": 2, 

1792 }, 

1793 "11": { 

1794 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1795 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1796 "COMPONENT": 2, 

1797 }, 

1798 "12": { 

1799 "MUST_LINK": ["8", "11", "10", "12", "9"], 

1800 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

1801 "COMPONENT": 2, 

1802 }, 

1803 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 3}, 

1804 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 4}, 

1805 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

1806 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

1807 "17": { 

1808 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1809 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1810 "COMPONENT": 7, 

1811 }, 

1812 "18": { 

1813 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1814 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1815 "COMPONENT": 7, 

1816 }, 

1817 "19": { 

1818 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1819 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1820 "COMPONENT": 7, 

1821 }, 

1822 "20": { 

1823 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1824 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1825 "COMPONENT": 7, 

1826 }, 

1827 "21": { 

1828 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1829 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1830 "COMPONENT": 7, 

1831 }, 

1832 "22": { 

1833 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

1834 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

1835 "COMPONENT": 7, 

1836 }, 

1837 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

1838 } 

1839 

1840 

1841# ============================================================================== 

1842# test_ok_4 

1843# ============================================================================== 

1844 

1845 

1846def test_ok_4(fake_backgroundtasks, tmp_path): 

1847 """ 

1848 Test the `modelization update` task works. 

1849 

1850 Args: 

1851 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

1852 tmp_path: Pytest fixture: points to a temporary directory. 

1853 """ 

1854 

1855 # Create dummy projects. 

1856 create_dummy_projects( 

1857 tmp_path=tmp_path, 

1858 list_of_dummy_project_ids=[ 

1859 "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION", 

1860 ], 

1861 ) 

1862 

1863 # Check texts. 

1864 with open( 

1865 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

1866 ) as texts_before_fileobject: 

1867 assert json.load(texts_before_fileobject) == { 

1868 "0": { 

1869 "text_original": "créer un numéro virtuel", 

1870 "text": "créer un numéro virtuel", 

1871 "text_preprocessed": "creer un numero virtuel", 

1872 "is_deleted": False, 

1873 }, 

1874 "1": { 

1875 "text_original": "activer les numéros de carte virtuelle", 

1876 "text": "activer les numéros de carte virtuelle", 

1877 "text_preprocessed": "activer les numeros de carte virtuelle", 

1878 "is_deleted": False, 

1879 }, 

1880 "2": { 

1881 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

1882 "text": "Comment utiliser un numéro de carte virtuelle ?", 

1883 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

1884 "is_deleted": False, 

1885 }, 

1886 "3": { 

1887 "text_original": "débloquer le paiement avec carte virtuelle", 

1888 "text": "débloquer le paiement avec carte virtuelle", 

1889 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

1890 "is_deleted": False, 

1891 }, 

1892 "4": { 

1893 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

1894 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

1895 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

1896 "is_deleted": False, 

1897 }, 

1898 "5": { 

1899 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

1900 "text": "Où puis-je gérer mes numéros virtuels ?", 

1901 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

1902 "is_deleted": False, 

1903 }, 

1904 "6": { 

1905 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

1906 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

1907 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

1908 "is_deleted": False, 

1909 }, 

1910 "7": { 

1911 "text_original": "supprimer un numéro de carte virtuel", 

1912 "text": "supprimer un numéro de carte virtuel", 

1913 "text_preprocessed": "supprimer un numero de carte virtuel", 

1914 "is_deleted": False, 

1915 }, 

1916 "8": { 

1917 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

1918 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

1919 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

1920 "is_deleted": False, 

1921 }, 

1922 "9": { 

1923 "text_original": "Je souhaite connaître le solde de mon compte.", 

1924 "text": "Je souhaite connaître le solde de mon compte.", 

1925 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

1926 "is_deleted": False, 

1927 }, 

1928 "10": { 

1929 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

1930 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

1931 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

1932 "is_deleted": False, 

1933 }, 

1934 "11": { 

1935 "text_original": "Je voudrai connaître le solde de mes comptes.", 

1936 "text": "Je voudrai connaître le solde de mes comptes.", 

1937 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

1938 "is_deleted": False, 

1939 }, 

1940 "12": { 

1941 "text_original": "Quel est le solde de mon compte courant ?", 

1942 "text": "Quel est le solde de mon compte courant ?", 

1943 "text_preprocessed": "quel est le solde de mon compte courant", 

1944 "is_deleted": False, 

1945 }, 

1946 "13": { 

1947 "text_original": "Quel est mon solde bancaire ?", 

1948 "text": "Quel est mon solde bancaire ?", 

1949 "text_preprocessed": "quel est mon solde bancaire", 

1950 "is_deleted": False, 

1951 }, 

1952 "14": { 

1953 "text_original": "solde de mon compte en banque", 

1954 "text": "solde de mon compte en banque", 

1955 "text_preprocessed": "solde de mon compte en banque", 

1956 "is_deleted": False, 

1957 }, 

1958 "15": { 

1959 "text_original": "Mon solde bancaire est-il toujours positif ?", 

1960 "text": "Mon solde bancaire est-il toujours positif ?", 

1961 "text_preprocessed": "mon solde bancaire est il toujours positif", 

1962 "is_deleted": False, 

1963 }, 

1964 "16": { 

1965 "text_original": "carte bancaire avalée", 

1966 "text": "carte bancaire avalée", 

1967 "text_preprocessed": "carte bancaire avalee", 

1968 "is_deleted": False, 

1969 }, 

1970 "17": { 

1971 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1972 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

1973 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

1974 "is_deleted": False, 

1975 }, 

1976 "18": { 

1977 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1978 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

1979 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

1980 "is_deleted": False, 

1981 }, 

1982 "19": { 

1983 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

1984 "text": "Le distributeur a confisqué ma carte de paiement...", 

1985 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

1986 "is_deleted": False, 

1987 }, 

1988 "20": { 

1989 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

1990 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

1991 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

1992 "is_deleted": False, 

1993 }, 

1994 "21": { 

1995 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

1996 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

1997 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

1998 "is_deleted": False, 

1999 }, 

2000 "22": { 

2001 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

2002 "text": "Que faire si je me suis fait avaler ma carte ?", 

2003 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

2004 "is_deleted": False, 

2005 }, 

2006 "23": { 

2007 "text_original": "récupérer carte bleue avalée par distributeur", 

2008 "text": "récupérer carte bleue avalée par distributeur", 

2009 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

2010 "is_deleted": False, 

2011 }, 

2012 } 

2013 

2014 # Check modelization. 

2015 assert "constraints_manager.pkl" not in os.listdir( 

2016 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

2017 ) 

2018 assert "vectors_2D.json" not in os.listdir( 

2019 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

2020 ) 

2021 assert "vectors_3D.json" not in os.listdir( 

2022 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

2023 ) 

2024 with open( 

2025 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

2026 ) as modelization_before_fileobject: 

2027 assert json.load(modelization_before_fileobject) == { 

2028 "0": { 

2029 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2030 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2031 "COMPONENT": 0, 

2032 }, 

2033 "1": { 

2034 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2035 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2036 "COMPONENT": 0, 

2037 }, 

2038 "2": { 

2039 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2040 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2041 "COMPONENT": 0, 

2042 }, 

2043 "3": { 

2044 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2045 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2046 "COMPONENT": 0, 

2047 }, 

2048 "4": { 

2049 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2050 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2051 "COMPONENT": 0, 

2052 }, 

2053 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

2054 "6": { 

2055 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2056 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2057 "COMPONENT": 0, 

2058 }, 

2059 "7": { 

2060 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2061 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2062 "COMPONENT": 0, 

2063 }, 

2064 "8": { 

2065 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2066 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2067 "COMPONENT": 2, 

2068 }, 

2069 "9": { 

2070 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2071 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2072 "COMPONENT": 2, 

2073 }, 

2074 "10": { 

2075 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2076 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2077 "COMPONENT": 2, 

2078 }, 

2079 "11": { 

2080 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2081 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2082 "COMPONENT": 2, 

2083 }, 

2084 "12": { 

2085 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2086 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2087 "COMPONENT": 2, 

2088 }, 

2089 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 3}, 

2090 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 4}, 

2091 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

2092 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

2093 "17": { 

2094 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2095 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2096 "COMPONENT": 7, 

2097 }, 

2098 "18": { 

2099 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2100 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2101 "COMPONENT": 7, 

2102 }, 

2103 "19": { 

2104 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2105 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2106 "COMPONENT": 7, 

2107 }, 

2108 "20": { 

2109 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2110 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2111 "COMPONENT": 7, 

2112 }, 

2113 "21": { 

2114 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2115 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2116 "COMPONENT": 7, 

2117 }, 

2118 "22": { 

2119 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2120 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2121 "COMPONENT": 7, 

2122 }, 

2123 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

2124 } 

2125 

2126 # Run the task. 

2127 fake_backgroundtasks.run_modelization_update_task( 

2128 project_id="import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION", 

2129 ) 

2130 

2131 # Assert status is updated. 

2132 with open( 

2133 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "status.json", "r" 

2134 ) as status_after_fileobject: 

2135 assert json.load(status_after_fileobject) == {"iteration_id": 1, "state": "CLUSTERING_TODO", "task": None} 

2136 

2137 # Assert texts is updated. 

2138 with open( 

2139 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

2140 ) as texts_after_fileobject: 

2141 assert json.load(texts_after_fileobject) == { 

2142 "0": { 

2143 "text_original": "créer un numéro virtuel", 

2144 "text": "créer un numéro virtuel", 

2145 "text_preprocessed": "creer un numero virtuel", 

2146 "is_deleted": False, 

2147 }, 

2148 "1": { 

2149 "text_original": "activer les numéros de carte virtuelle", 

2150 "text": "activer les numéros de carte virtuelle", 

2151 "text_preprocessed": "activer les numeros de carte virtuelle", 

2152 "is_deleted": False, 

2153 }, 

2154 "2": { 

2155 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

2156 "text": "Comment utiliser un numéro de carte virtuelle ?", 

2157 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

2158 "is_deleted": False, 

2159 }, 

2160 "3": { 

2161 "text_original": "débloquer le paiement avec carte virtuelle", 

2162 "text": "débloquer le paiement avec carte virtuelle", 

2163 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

2164 "is_deleted": False, 

2165 }, 

2166 "4": { 

2167 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

2168 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

2169 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

2170 "is_deleted": False, 

2171 }, 

2172 "5": { 

2173 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

2174 "text": "Où puis-je gérer mes numéros virtuels ?", 

2175 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

2176 "is_deleted": False, 

2177 }, 

2178 "6": { 

2179 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

2180 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

2181 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

2182 "is_deleted": False, 

2183 }, 

2184 "7": { 

2185 "text_original": "supprimer un numéro de carte virtuel", 

2186 "text": "supprimer un numéro de carte virtuel", 

2187 "text_preprocessed": "supprimer un numero de carte virtuel", 

2188 "is_deleted": False, 

2189 }, 

2190 "8": { 

2191 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

2192 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

2193 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

2194 "is_deleted": False, 

2195 }, 

2196 "9": { 

2197 "text_original": "Je souhaite connaître le solde de mon compte.", 

2198 "text": "Je souhaite connaître le solde de mon compte.", 

2199 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

2200 "is_deleted": False, 

2201 }, 

2202 "10": { 

2203 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

2204 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

2205 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

2206 "is_deleted": False, 

2207 }, 

2208 "11": { 

2209 "text_original": "Je voudrai connaître le solde de mes comptes.", 

2210 "text": "Je voudrai connaître le solde de mes comptes.", 

2211 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

2212 "is_deleted": False, 

2213 }, 

2214 "12": { 

2215 "text_original": "Quel est le solde de mon compte courant ?", 

2216 "text": "Quel est le solde de mon compte courant ?", 

2217 "text_preprocessed": "quel est le solde de mon compte courant", 

2218 "is_deleted": False, 

2219 }, 

2220 "13": { 

2221 "text_original": "Quel est mon solde bancaire ?", 

2222 "text": "Quel est mon solde bancaire ?", 

2223 "text_preprocessed": "quel est mon solde bancaire", 

2224 "is_deleted": False, 

2225 }, 

2226 "14": { 

2227 "text_original": "solde de mon compte en banque", 

2228 "text": "solde de mon compte en banque", 

2229 "text_preprocessed": "solde de mon compte en banque", 

2230 "is_deleted": False, 

2231 }, 

2232 "15": { 

2233 "text_original": "Mon solde bancaire est-il toujours positif ?", 

2234 "text": "Mon solde bancaire est-il toujours positif ?", 

2235 "text_preprocessed": "mon solde bancaire est il toujours positif", 

2236 "is_deleted": False, 

2237 }, 

2238 "16": { 

2239 "text_original": "carte bancaire avalée", 

2240 "text": "carte bancaire avalée", 

2241 "text_preprocessed": "carte bancaire avalee", 

2242 "is_deleted": False, 

2243 }, 

2244 "17": { 

2245 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

2246 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

2247 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

2248 "is_deleted": False, 

2249 }, 

2250 "18": { 

2251 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

2252 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

2253 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

2254 "is_deleted": False, 

2255 }, 

2256 "19": { 

2257 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

2258 "text": "Le distributeur a confisqué ma carte de paiement...", 

2259 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

2260 "is_deleted": False, 

2261 }, 

2262 "20": { 

2263 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

2264 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

2265 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

2266 "is_deleted": False, 

2267 }, 

2268 "21": { 

2269 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

2270 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

2271 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

2272 "is_deleted": False, 

2273 }, 

2274 "22": { 

2275 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

2276 "text": "Que faire si je me suis fait avaler ma carte ?", 

2277 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

2278 "is_deleted": False, 

2279 }, 

2280 "23": { 

2281 "text_original": "récupérer carte bleue avalée par distributeur", 

2282 "text": "récupérer carte bleue avalée par distributeur", 

2283 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

2284 "is_deleted": False, 

2285 }, 

2286 } 

2287 

2288 # Assert modelization is updated. 

2289 assert "constraints_manager.pkl" in os.listdir( 

2290 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

2291 ) 

2292 assert "vectors_2D.json" in os.listdir(tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION") 

2293 assert "vectors_3D.json" in os.listdir(tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION") 

2294 with open( 

2295 tmp_path / "import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

2296 ) as modelization_after_fileobject: 

2297 assert json.load(modelization_after_fileobject) == { 

2298 "0": { 

2299 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2300 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2301 "COMPONENT": 0, 

2302 }, 

2303 "1": { 

2304 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2305 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2306 "COMPONENT": 0, 

2307 }, 

2308 "2": { 

2309 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2310 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2311 "COMPONENT": 0, 

2312 }, 

2313 "3": { 

2314 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2315 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2316 "COMPONENT": 0, 

2317 }, 

2318 "4": { 

2319 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2320 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2321 "COMPONENT": 0, 

2322 }, 

2323 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

2324 "6": { 

2325 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2326 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2327 "COMPONENT": 0, 

2328 }, 

2329 "7": { 

2330 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2331 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2332 "COMPONENT": 0, 

2333 }, 

2334 "8": { 

2335 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2336 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2337 "COMPONENT": 2, 

2338 }, 

2339 "9": { 

2340 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2341 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2342 "COMPONENT": 2, 

2343 }, 

2344 "10": { 

2345 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2346 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2347 "COMPONENT": 2, 

2348 }, 

2349 "11": { 

2350 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2351 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2352 "COMPONENT": 2, 

2353 }, 

2354 "12": { 

2355 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2356 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2357 "COMPONENT": 2, 

2358 }, 

2359 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 3}, 

2360 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 4}, 

2361 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

2362 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

2363 "17": { 

2364 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2365 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2366 "COMPONENT": 7, 

2367 }, 

2368 "18": { 

2369 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2370 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2371 "COMPONENT": 7, 

2372 }, 

2373 "19": { 

2374 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2375 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2376 "COMPONENT": 7, 

2377 }, 

2378 "20": { 

2379 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2380 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2381 "COMPONENT": 7, 

2382 }, 

2383 "21": { 

2384 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2385 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2386 "COMPONENT": 7, 

2387 }, 

2388 "22": { 

2389 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2390 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2391 "COMPONENT": 7, 

2392 }, 

2393 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

2394 } 

2395 

2396 

2397# ============================================================================== 

2398# test_ok_5 

2399# ============================================================================== 

2400 

2401 

2402def test_ok_5(fake_backgroundtasks, tmp_path): 

2403 """ 

2404 Test the `modelization update` task works. 

2405 

2406 Args: 

2407 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

2408 tmp_path: Pytest fixture: points to a temporary directory. 

2409 """ 

2410 

2411 # Create dummy projects. 

2412 create_dummy_projects( 

2413 tmp_path=tmp_path, 

2414 list_of_dummy_project_ids=[ 

2415 "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION", 

2416 ], 

2417 ) 

2418 

2419 # Check texts. 

2420 with open( 

2421 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

2422 ) as texts_before_fileobject: 

2423 assert json.load(texts_before_fileobject) == { 

2424 "0": { 

2425 "text_original": "créer un numéro virtuel", 

2426 "text": "créer un numéro virtuel", 

2427 "text_preprocessed": "creer un numero virtuel", 

2428 "is_deleted": False, 

2429 }, 

2430 "1": { 

2431 "text_original": "activer les numéros de carte virtuelle", 

2432 "text": "activer les numéros de carte virtuelle", 

2433 "text_preprocessed": "activer les numeros de carte virtuelle", 

2434 "is_deleted": False, 

2435 }, 

2436 "2": { 

2437 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

2438 "text": "Comment utiliser un numéro de carte virtuelle ?", 

2439 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

2440 "is_deleted": False, 

2441 }, 

2442 "3": { 

2443 "text_original": "débloquer le paiement avec carte virtuelle", 

2444 "text": "débloquer le paiement avec carte virtuelle", 

2445 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

2446 "is_deleted": False, 

2447 }, 

2448 "4": { 

2449 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

2450 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

2451 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

2452 "is_deleted": False, 

2453 }, 

2454 "5": { 

2455 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

2456 "text": "Où puis-je gérer mes numéros virtuels ?", 

2457 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

2458 "is_deleted": False, 

2459 }, 

2460 "6": { 

2461 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

2462 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

2463 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

2464 "is_deleted": False, 

2465 }, 

2466 "7": { 

2467 "text_original": "supprimer un numéro de carte virtuel", 

2468 "text": "supprimer un numéro de carte virtuel", 

2469 "text_preprocessed": "supprimer un numero de carte virtuel", 

2470 "is_deleted": False, 

2471 }, 

2472 "8": { 

2473 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

2474 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

2475 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

2476 "is_deleted": False, 

2477 }, 

2478 "9": { 

2479 "text_original": "Je souhaite connaître le solde de mon compte.", 

2480 "text": "Je souhaite connaître le solde de mon compte.", 

2481 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

2482 "is_deleted": False, 

2483 }, 

2484 "10": { 

2485 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

2486 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

2487 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

2488 "is_deleted": False, 

2489 }, 

2490 "11": { 

2491 "text_original": "Je voudrai connaître le solde de mes comptes.", 

2492 "text": "Je voudrai connaître le solde de mes comptes.", 

2493 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

2494 "is_deleted": False, 

2495 }, 

2496 "12": { 

2497 "text_original": "Quel est le solde de mon compte courant ?", 

2498 "text": "Quel est le solde de mon compte courant ?", 

2499 "text_preprocessed": "quel est le solde de mon compte courant", 

2500 "is_deleted": False, 

2501 }, 

2502 "13": { 

2503 "text_original": "Quel est mon solde bancaire ?", 

2504 "text": "Quel est mon solde bancaire ?", 

2505 "text_preprocessed": "quel est mon solde bancaire", 

2506 "is_deleted": False, 

2507 }, 

2508 "14": { 

2509 "text_original": "solde de mon compte en banque", 

2510 "text": "solde de mon compte en banque", 

2511 "text_preprocessed": "solde de mon compte en banque", 

2512 "is_deleted": False, 

2513 }, 

2514 "15": { 

2515 "text_original": "Mon solde bancaire est-il toujours positif ?", 

2516 "text": "Mon solde bancaire est-il toujours positif ?", 

2517 "text_preprocessed": "mon solde bancaire est il toujours positif", 

2518 "is_deleted": False, 

2519 }, 

2520 "16": { 

2521 "text_original": "carte bancaire avalée", 

2522 "text": "carte bancaire avalée", 

2523 "text_preprocessed": "carte bancaire avalee", 

2524 "is_deleted": False, 

2525 }, 

2526 "17": { 

2527 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

2528 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

2529 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

2530 "is_deleted": False, 

2531 }, 

2532 "18": { 

2533 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

2534 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

2535 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

2536 "is_deleted": False, 

2537 }, 

2538 "19": { 

2539 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

2540 "text": "Le distributeur a confisqué ma carte de paiement...", 

2541 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

2542 "is_deleted": False, 

2543 }, 

2544 "20": { 

2545 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

2546 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

2547 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

2548 "is_deleted": False, 

2549 }, 

2550 "21": { 

2551 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

2552 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

2553 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

2554 "is_deleted": False, 

2555 }, 

2556 "22": { 

2557 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

2558 "text": "Que faire si je me suis fait avaler ma carte ?", 

2559 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

2560 "is_deleted": False, 

2561 }, 

2562 "23": { 

2563 "text_original": "récupérer carte bleue avalée par distributeur", 

2564 "text": "récupérer carte bleue avalée par distributeur", 

2565 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

2566 "is_deleted": False, 

2567 }, 

2568 } 

2569 

2570 # Check modelization. 

2571 assert "constraints_manager.pkl" not in os.listdir( 

2572 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

2573 ) 

2574 assert "vectors_2D.json" not in os.listdir( 

2575 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

2576 ) 

2577 assert "vectors_3D.json" not in os.listdir( 

2578 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

2579 ) 

2580 with open( 

2581 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

2582 ) as modelization_before_fileobject: 

2583 assert json.load(modelization_before_fileobject) == { 

2584 "0": { 

2585 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2586 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2587 "COMPONENT": 0, 

2588 }, 

2589 "1": { 

2590 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2591 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2592 "COMPONENT": 0, 

2593 }, 

2594 "2": { 

2595 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2596 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2597 "COMPONENT": 0, 

2598 }, 

2599 "3": { 

2600 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2601 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2602 "COMPONENT": 0, 

2603 }, 

2604 "4": { 

2605 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2606 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2607 "COMPONENT": 0, 

2608 }, 

2609 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

2610 "6": { 

2611 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2612 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2613 "COMPONENT": 0, 

2614 }, 

2615 "7": { 

2616 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2617 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2618 "COMPONENT": 0, 

2619 }, 

2620 "8": { 

2621 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2622 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2623 "COMPONENT": 2, 

2624 }, 

2625 "9": { 

2626 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2627 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2628 "COMPONENT": 2, 

2629 }, 

2630 "10": { 

2631 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2632 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2633 "COMPONENT": 2, 

2634 }, 

2635 "11": { 

2636 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2637 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2638 "COMPONENT": 2, 

2639 }, 

2640 "12": { 

2641 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2642 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2643 "COMPONENT": 2, 

2644 }, 

2645 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 3}, 

2646 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 4}, 

2647 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

2648 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

2649 "17": { 

2650 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2651 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2652 "COMPONENT": 7, 

2653 }, 

2654 "18": { 

2655 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2656 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2657 "COMPONENT": 7, 

2658 }, 

2659 "19": { 

2660 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2661 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2662 "COMPONENT": 7, 

2663 }, 

2664 "20": { 

2665 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2666 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2667 "COMPONENT": 7, 

2668 }, 

2669 "21": { 

2670 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2671 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2672 "COMPONENT": 7, 

2673 }, 

2674 "22": { 

2675 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2676 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2677 "COMPONENT": 7, 

2678 }, 

2679 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

2680 } 

2681 

2682 # Run the task. 

2683 fake_backgroundtasks.run_modelization_update_task( 

2684 project_id="import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION", 

2685 ) 

2686 

2687 # Assert status is updated. 

2688 with open( 

2689 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "status.json", "r" 

2690 ) as status_after_fileobject: 

2691 assert json.load(status_after_fileobject) == {"iteration_id": 1, "state": "ITERATION_END", "task": None} 

2692 

2693 # Assert texts is updated. 

2694 with open( 

2695 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

2696 ) as texts_after_fileobject: 

2697 assert json.load(texts_after_fileobject) == { 

2698 "0": { 

2699 "text_original": "créer un numéro virtuel", 

2700 "text": "créer un numéro virtuel", 

2701 "text_preprocessed": "creer un numero virtuel", 

2702 "is_deleted": False, 

2703 }, 

2704 "1": { 

2705 "text_original": "activer les numéros de carte virtuelle", 

2706 "text": "activer les numéros de carte virtuelle", 

2707 "text_preprocessed": "activer les numeros de carte virtuelle", 

2708 "is_deleted": False, 

2709 }, 

2710 "2": { 

2711 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

2712 "text": "Comment utiliser un numéro de carte virtuelle ?", 

2713 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

2714 "is_deleted": False, 

2715 }, 

2716 "3": { 

2717 "text_original": "débloquer le paiement avec carte virtuelle", 

2718 "text": "débloquer le paiement avec carte virtuelle", 

2719 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

2720 "is_deleted": False, 

2721 }, 

2722 "4": { 

2723 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

2724 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

2725 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

2726 "is_deleted": False, 

2727 }, 

2728 "5": { 

2729 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

2730 "text": "Où puis-je gérer mes numéros virtuels ?", 

2731 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

2732 "is_deleted": False, 

2733 }, 

2734 "6": { 

2735 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

2736 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

2737 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

2738 "is_deleted": False, 

2739 }, 

2740 "7": { 

2741 "text_original": "supprimer un numéro de carte virtuel", 

2742 "text": "supprimer un numéro de carte virtuel", 

2743 "text_preprocessed": "supprimer un numero de carte virtuel", 

2744 "is_deleted": False, 

2745 }, 

2746 "8": { 

2747 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

2748 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

2749 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

2750 "is_deleted": False, 

2751 }, 

2752 "9": { 

2753 "text_original": "Je souhaite connaître le solde de mon compte.", 

2754 "text": "Je souhaite connaître le solde de mon compte.", 

2755 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

2756 "is_deleted": False, 

2757 }, 

2758 "10": { 

2759 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

2760 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

2761 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

2762 "is_deleted": False, 

2763 }, 

2764 "11": { 

2765 "text_original": "Je voudrai connaître le solde de mes comptes.", 

2766 "text": "Je voudrai connaître le solde de mes comptes.", 

2767 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

2768 "is_deleted": False, 

2769 }, 

2770 "12": { 

2771 "text_original": "Quel est le solde de mon compte courant ?", 

2772 "text": "Quel est le solde de mon compte courant ?", 

2773 "text_preprocessed": "quel est le solde de mon compte courant", 

2774 "is_deleted": False, 

2775 }, 

2776 "13": { 

2777 "text_original": "Quel est mon solde bancaire ?", 

2778 "text": "Quel est mon solde bancaire ?", 

2779 "text_preprocessed": "quel est mon solde bancaire", 

2780 "is_deleted": False, 

2781 }, 

2782 "14": { 

2783 "text_original": "solde de mon compte en banque", 

2784 "text": "solde de mon compte en banque", 

2785 "text_preprocessed": "solde de mon compte en banque", 

2786 "is_deleted": False, 

2787 }, 

2788 "15": { 

2789 "text_original": "Mon solde bancaire est-il toujours positif ?", 

2790 "text": "Mon solde bancaire est-il toujours positif ?", 

2791 "text_preprocessed": "mon solde bancaire est il toujours positif", 

2792 "is_deleted": False, 

2793 }, 

2794 "16": { 

2795 "text_original": "carte bancaire avalée", 

2796 "text": "carte bancaire avalée", 

2797 "text_preprocessed": "carte bancaire avalee", 

2798 "is_deleted": False, 

2799 }, 

2800 "17": { 

2801 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

2802 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

2803 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

2804 "is_deleted": False, 

2805 }, 

2806 "18": { 

2807 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

2808 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

2809 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

2810 "is_deleted": False, 

2811 }, 

2812 "19": { 

2813 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

2814 "text": "Le distributeur a confisqué ma carte de paiement...", 

2815 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

2816 "is_deleted": False, 

2817 }, 

2818 "20": { 

2819 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

2820 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

2821 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

2822 "is_deleted": False, 

2823 }, 

2824 "21": { 

2825 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

2826 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

2827 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

2828 "is_deleted": False, 

2829 }, 

2830 "22": { 

2831 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

2832 "text": "Que faire si je me suis fait avaler ma carte ?", 

2833 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

2834 "is_deleted": False, 

2835 }, 

2836 "23": { 

2837 "text_original": "récupérer carte bleue avalée par distributeur", 

2838 "text": "récupérer carte bleue avalée par distributeur", 

2839 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

2840 "is_deleted": False, 

2841 }, 

2842 } 

2843 

2844 # Assert modelization is updated. 

2845 assert "constraints_manager.pkl" in os.listdir( 

2846 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

2847 ) 

2848 assert "vectors_2D.json" in os.listdir(tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION") 

2849 assert "vectors_3D.json" in os.listdir(tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION") 

2850 with open( 

2851 tmp_path / "import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

2852 ) as modelization_after_fileobject: 

2853 assert json.load(modelization_after_fileobject) == { 

2854 "0": { 

2855 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2856 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2857 "COMPONENT": 0, 

2858 }, 

2859 "1": { 

2860 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2861 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2862 "COMPONENT": 0, 

2863 }, 

2864 "2": { 

2865 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2866 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2867 "COMPONENT": 0, 

2868 }, 

2869 "3": { 

2870 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2871 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2872 "COMPONENT": 0, 

2873 }, 

2874 "4": { 

2875 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2876 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2877 "COMPONENT": 0, 

2878 }, 

2879 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

2880 "6": { 

2881 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2882 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2883 "COMPONENT": 0, 

2884 }, 

2885 "7": { 

2886 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

2887 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

2888 "COMPONENT": 0, 

2889 }, 

2890 "8": { 

2891 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2892 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2893 "COMPONENT": 2, 

2894 }, 

2895 "9": { 

2896 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2897 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2898 "COMPONENT": 2, 

2899 }, 

2900 "10": { 

2901 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2902 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2903 "COMPONENT": 2, 

2904 }, 

2905 "11": { 

2906 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2907 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2908 "COMPONENT": 2, 

2909 }, 

2910 "12": { 

2911 "MUST_LINK": ["8", "11", "10", "12", "9"], 

2912 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

2913 "COMPONENT": 2, 

2914 }, 

2915 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 3}, 

2916 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 4}, 

2917 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

2918 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

2919 "17": { 

2920 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2921 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2922 "COMPONENT": 7, 

2923 }, 

2924 "18": { 

2925 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2926 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2927 "COMPONENT": 7, 

2928 }, 

2929 "19": { 

2930 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2931 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2932 "COMPONENT": 7, 

2933 }, 

2934 "20": { 

2935 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2936 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2937 "COMPONENT": 7, 

2938 }, 

2939 "21": { 

2940 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2941 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2942 "COMPONENT": 7, 

2943 }, 

2944 "22": { 

2945 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

2946 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

2947 "COMPONENT": 7, 

2948 }, 

2949 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

2950 } 

2951 

2952 

2953# ============================================================================== 

2954# test_ok_6 

2955# ============================================================================== 

2956 

2957 

2958def test_ok_6(fake_backgroundtasks, tmp_path): 

2959 """ 

2960 Test the `modelization update` task works. 

2961 

2962 Args: 

2963 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

2964 tmp_path: Pytest fixture: points to a temporary directory. 

2965 """ 

2966 

2967 # Create dummy projects. 

2968 create_dummy_projects( 

2969 tmp_path=tmp_path, 

2970 list_of_dummy_project_ids=[ 

2971 "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS", 

2972 ], 

2973 ) 

2974 

2975 # Check texts. 

2976 with open( 

2977 tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS" / "texts.json", "r" 

2978 ) as texts_before_fileobject: 

2979 assert json.load(texts_before_fileobject) == { 

2980 "0": { 

2981 "text_original": "créer un numéro virtuel", 

2982 "text": "créer un numéro virtuel", 

2983 "text_preprocessed": "creer un numero virtuel", 

2984 "is_deleted": False, 

2985 }, 

2986 "1": { 

2987 "text_original": "activer les numéros de carte virtuelle", 

2988 "text": "activer les numéros de carte virtuelle", 

2989 "text_preprocessed": "activer les numeros de carte virtuelle", 

2990 "is_deleted": False, 

2991 }, 

2992 "2": { 

2993 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

2994 "text": "Comment utiliser un numéro de carte virtuelle ?", 

2995 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

2996 "is_deleted": False, 

2997 }, 

2998 "3": { 

2999 "text_original": "débloquer le paiement avec carte virtuelle", 

3000 "text": "débloquer le paiement avec carte virtuelle", 

3001 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

3002 "is_deleted": False, 

3003 }, 

3004 "4": { 

3005 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

3006 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

3007 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

3008 "is_deleted": False, 

3009 }, 

3010 "5": { 

3011 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

3012 "text": "Où puis-je gérer mes numéros virtuels ?", 

3013 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

3014 "is_deleted": False, 

3015 }, 

3016 "6": { 

3017 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

3018 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

3019 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

3020 "is_deleted": False, 

3021 }, 

3022 "7": { 

3023 "text_original": "supprimer un numéro de carte virtuel", 

3024 "text": "supprimer un numéro de carte virtuel", 

3025 "text_preprocessed": "supprimer un numero de carte virtuel", 

3026 "is_deleted": False, 

3027 }, 

3028 "8": { 

3029 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

3030 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

3031 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

3032 "is_deleted": False, 

3033 }, 

3034 "9": { 

3035 "text_original": "Je souhaite connaître le solde de mon compte.", 

3036 "text": "Je souhaite connaître le solde de mon compte.", 

3037 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

3038 "is_deleted": False, 

3039 }, 

3040 "10": { 

3041 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

3042 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

3043 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

3044 "is_deleted": False, 

3045 }, 

3046 "11": { 

3047 "text_original": "Je voudrai connaître le solde de mes comptes.", 

3048 "text": "Je voudrai connaître le solde de mes comptes.", 

3049 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

3050 "is_deleted": False, 

3051 }, 

3052 "12": { 

3053 "text_original": "Quel est le solde de mon compte courant ?", 

3054 "text": "Quel est le solde de mon compte courant ?", 

3055 "text_preprocessed": "quel est le solde de mon compte courant", 

3056 "is_deleted": False, 

3057 }, 

3058 "13": { 

3059 "text_original": "Quel est mon solde bancaire ?", 

3060 "text": "Quel est mon solde bancaire ?", 

3061 "text_preprocessed": "quel est mon solde bancaire", 

3062 "is_deleted": False, 

3063 }, 

3064 "14": { 

3065 "text_original": "solde de mon compte en banque", 

3066 "text": "solde de mon compte en banque", 

3067 "text_preprocessed": "solde de mon compte en banque", 

3068 "is_deleted": True, 

3069 }, 

3070 "15": { 

3071 "text_original": "Mon solde bancaire est-il toujours positif ?", 

3072 "text": "Mon solde bancaire est-il toujours positif ?", 

3073 "text_preprocessed": "mon solde bancaire est il toujours positif", 

3074 "is_deleted": False, 

3075 }, 

3076 "16": { 

3077 "text_original": "carte bancaire avalée", 

3078 "text": "carte bancaire avalée", 

3079 "text_preprocessed": "carte bancaire avalee", 

3080 "is_deleted": False, 

3081 }, 

3082 "17": { 

3083 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3084 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3085 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

3086 "is_deleted": False, 

3087 }, 

3088 "18": { 

3089 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3090 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3091 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

3092 "is_deleted": False, 

3093 }, 

3094 "19": { 

3095 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

3096 "text": "Le distributeur a confisqué ma carte de paiement...", 

3097 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

3098 "is_deleted": False, 

3099 }, 

3100 "20": { 

3101 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

3102 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

3103 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

3104 "is_deleted": False, 

3105 }, 

3106 "21": { 

3107 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

3108 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

3109 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

3110 "is_deleted": False, 

3111 }, 

3112 "22": { 

3113 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

3114 "text": "Que faire si je me suis fait avaler ma carte ?", 

3115 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

3116 "is_deleted": False, 

3117 }, 

3118 "23": { 

3119 "text_original": "récupérer carte bleue avalée par distributeur", 

3120 "text": "récupérer carte bleue avalée par distributeur", 

3121 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

3122 "is_deleted": False, 

3123 }, 

3124 } 

3125 

3126 # Check modelization. 

3127 assert "constraints_manager.pkl" in os.listdir( 

3128 tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS" 

3129 ) 

3130 assert "vectors_2D.json" in os.listdir(tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS") 

3131 assert "vectors_3D.json" in os.listdir(tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS") 

3132 with open( 

3133 tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS" / "modelization.json", "r" 

3134 ) as modelization_before_fileobject: 

3135 assert json.load(modelization_before_fileobject) == { 

3136 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

3137 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

3138 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

3139 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

3140 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

3141 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

3142 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

3143 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

3144 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

3145 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

3146 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

3147 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

3148 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

3149 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

3150 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

3151 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

3152 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

3153 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

3154 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

3155 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

3156 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

3157 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

3158 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

3159 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

3160 } 

3161 

3162 # Run the task. 

3163 fake_backgroundtasks.run_modelization_update_task( 

3164 project_id="1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS", 

3165 ) 

3166 

3167 # Assert status is updated. 

3168 with open( 

3169 tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS" / "status.json", "r" 

3170 ) as status_after_fileobject: 

3171 assert json.load(status_after_fileobject) == { 

3172 "iteration_id": 1, 

3173 "state": "ANNOTATION_WITH_OUTDATED_MODELIZATION_WITH_CONFLICTS", 

3174 "task": None, 

3175 } 

3176 

3177 # Assert texts is updated. 

3178 with open( 

3179 tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS" / "texts.json", "r" 

3180 ) as texts_after_fileobject: 

3181 assert json.load(texts_after_fileobject) == { 

3182 "0": { 

3183 "text_original": "créer un numéro virtuel", 

3184 "text": "créer un numéro virtuel", 

3185 "text_preprocessed": "creer un numero virtuel", 

3186 "is_deleted": False, 

3187 }, 

3188 "1": { 

3189 "text_original": "activer les numéros de carte virtuelle", 

3190 "text": "activer les numéros de carte virtuelle", 

3191 "text_preprocessed": "activer les numeros de carte virtuelle", 

3192 "is_deleted": False, 

3193 }, 

3194 "2": { 

3195 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

3196 "text": "Comment utiliser un numéro de carte virtuelle ?", 

3197 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

3198 "is_deleted": False, 

3199 }, 

3200 "3": { 

3201 "text_original": "débloquer le paiement avec carte virtuelle", 

3202 "text": "débloquer le paiement avec carte virtuelle", 

3203 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

3204 "is_deleted": False, 

3205 }, 

3206 "4": { 

3207 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

3208 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

3209 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

3210 "is_deleted": False, 

3211 }, 

3212 "5": { 

3213 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

3214 "text": "Où puis-je gérer mes numéros virtuels ?", 

3215 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

3216 "is_deleted": False, 

3217 }, 

3218 "6": { 

3219 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

3220 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

3221 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

3222 "is_deleted": False, 

3223 }, 

3224 "7": { 

3225 "text_original": "supprimer un numéro de carte virtuel", 

3226 "text": "supprimer un numéro de carte virtuel", 

3227 "text_preprocessed": "supprimer un numero de carte virtuel", 

3228 "is_deleted": False, 

3229 }, 

3230 "8": { 

3231 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

3232 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

3233 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

3234 "is_deleted": False, 

3235 }, 

3236 "9": { 

3237 "text_original": "Je souhaite connaître le solde de mon compte.", 

3238 "text": "Je souhaite connaître le solde de mon compte.", 

3239 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

3240 "is_deleted": False, 

3241 }, 

3242 "10": { 

3243 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

3244 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

3245 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

3246 "is_deleted": False, 

3247 }, 

3248 "11": { 

3249 "text_original": "Je voudrai connaître le solde de mes comptes.", 

3250 "text": "Je voudrai connaître le solde de mes comptes.", 

3251 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

3252 "is_deleted": False, 

3253 }, 

3254 "12": { 

3255 "text_original": "Quel est le solde de mon compte courant ?", 

3256 "text": "Quel est le solde de mon compte courant ?", 

3257 "text_preprocessed": "quel est le solde de mon compte courant", 

3258 "is_deleted": False, 

3259 }, 

3260 "13": { 

3261 "text_original": "Quel est mon solde bancaire ?", 

3262 "text": "Quel est mon solde bancaire ?", 

3263 "text_preprocessed": "quel est mon solde bancaire", 

3264 "is_deleted": False, 

3265 }, 

3266 "14": { 

3267 "text_original": "solde de mon compte en banque", 

3268 "text": "solde de mon compte en banque", 

3269 "text_preprocessed": "solde de mon compte en banque", 

3270 "is_deleted": True, 

3271 }, 

3272 "15": { 

3273 "text_original": "Mon solde bancaire est-il toujours positif ?", 

3274 "text": "Mon solde bancaire est-il toujours positif ?", 

3275 "text_preprocessed": "mon solde bancaire est il toujours positif", 

3276 "is_deleted": False, 

3277 }, 

3278 "16": { 

3279 "text_original": "carte bancaire avalée", 

3280 "text": "carte bancaire avalée", 

3281 "text_preprocessed": "carte bancaire avalee", 

3282 "is_deleted": False, 

3283 }, 

3284 "17": { 

3285 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3286 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3287 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

3288 "is_deleted": False, 

3289 }, 

3290 "18": { 

3291 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3292 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3293 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

3294 "is_deleted": False, 

3295 }, 

3296 "19": { 

3297 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

3298 "text": "Le distributeur a confisqué ma carte de paiement...", 

3299 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

3300 "is_deleted": False, 

3301 }, 

3302 "20": { 

3303 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

3304 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

3305 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

3306 "is_deleted": False, 

3307 }, 

3308 "21": { 

3309 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

3310 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

3311 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

3312 "is_deleted": False, 

3313 }, 

3314 "22": { 

3315 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

3316 "text": "Que faire si je me suis fait avaler ma carte ?", 

3317 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

3318 "is_deleted": False, 

3319 }, 

3320 "23": { 

3321 "text_original": "récupérer carte bleue avalée par distributeur", 

3322 "text": "récupérer carte bleue avalée par distributeur", 

3323 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

3324 "is_deleted": False, 

3325 }, 

3326 } 

3327 

3328 # Assert modelization is updated. 

3329 assert "constraints_manager.pkl" in os.listdir( 

3330 tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS" 

3331 ) 

3332 assert "vectors_2D.json" in os.listdir(tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS") 

3333 assert "vectors_3D.json" in os.listdir(tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS") 

3334 with open( 

3335 tmp_path / "1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS" / "modelization.json", "r" 

3336 ) as modelization_after_fileobject: 

3337 assert json.load(modelization_after_fileobject) == { 

3338 "0": { 

3339 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3340 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3341 "COMPONENT": 0, 

3342 }, 

3343 "1": { 

3344 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3345 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3346 "COMPONENT": 0, 

3347 }, 

3348 "2": { 

3349 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3350 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3351 "COMPONENT": 0, 

3352 }, 

3353 "3": { 

3354 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3355 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3356 "COMPONENT": 0, 

3357 }, 

3358 "4": { 

3359 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3360 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3361 "COMPONENT": 0, 

3362 }, 

3363 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

3364 "6": { 

3365 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3366 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3367 "COMPONENT": 0, 

3368 }, 

3369 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": ["4", "0", "1", "2", "3", "6"], "COMPONENT": 2}, 

3370 "8": { 

3371 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3372 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3373 "COMPONENT": 3, 

3374 }, 

3375 "9": { 

3376 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3377 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3378 "COMPONENT": 3, 

3379 }, 

3380 "10": { 

3381 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3382 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3383 "COMPONENT": 3, 

3384 }, 

3385 "11": { 

3386 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3387 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3388 "COMPONENT": 3, 

3389 }, 

3390 "12": { 

3391 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3392 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3393 "COMPONENT": 3, 

3394 }, 

3395 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 4}, 

3396 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

3397 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

3398 "17": { 

3399 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3400 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3401 "COMPONENT": 7, 

3402 }, 

3403 "18": { 

3404 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3405 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3406 "COMPONENT": 7, 

3407 }, 

3408 "19": { 

3409 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3410 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3411 "COMPONENT": 7, 

3412 }, 

3413 "20": { 

3414 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3415 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3416 "COMPONENT": 7, 

3417 }, 

3418 "21": { 

3419 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3420 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3421 "COMPONENT": 7, 

3422 }, 

3423 "22": { 

3424 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3425 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3426 "COMPONENT": 7, 

3427 }, 

3428 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

3429 } 

3430 

3431 

3432# ============================================================================== 

3433# test_ok_7 

3434# ============================================================================== 

3435 

3436 

3437def test_ok_7(fake_backgroundtasks, tmp_path): 

3438 """ 

3439 Test the `modelization update` task works. 

3440 

3441 Args: 

3442 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

3443 tmp_path: Pytest fixture: points to a temporary directory. 

3444 """ 

3445 

3446 # Create dummy projects. 

3447 create_dummy_projects( 

3448 tmp_path=tmp_path, 

3449 list_of_dummy_project_ids=[ 

3450 "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS", 

3451 ], 

3452 ) 

3453 

3454 # Check texts. 

3455 with open( 

3456 tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS" / "texts.json", "r" 

3457 ) as texts_before_fileobject: 

3458 assert json.load(texts_before_fileobject) == { 

3459 "0": { 

3460 "text_original": "créer un numéro virtuel", 

3461 "text": "créer un numéro virtuel", 

3462 "text_preprocessed": "creer un numero virtuel", 

3463 "is_deleted": False, 

3464 }, 

3465 "1": { 

3466 "text_original": "activer les numéros de carte virtuelle", 

3467 "text": "activer les numéros de carte virtuelle", 

3468 "text_preprocessed": "activer les numeros de carte virtuelle", 

3469 "is_deleted": False, 

3470 }, 

3471 "2": { 

3472 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

3473 "text": "Comment utiliser un numéro de carte virtuelle ?", 

3474 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

3475 "is_deleted": False, 

3476 }, 

3477 "3": { 

3478 "text_original": "débloquer le paiement avec carte virtuelle", 

3479 "text": "débloquer le paiement avec carte virtuelle", 

3480 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

3481 "is_deleted": False, 

3482 }, 

3483 "4": { 

3484 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

3485 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

3486 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

3487 "is_deleted": False, 

3488 }, 

3489 "5": { 

3490 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

3491 "text": "Où puis-je gérer mes numéros virtuels ?", 

3492 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

3493 "is_deleted": False, 

3494 }, 

3495 "6": { 

3496 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

3497 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

3498 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

3499 "is_deleted": False, 

3500 }, 

3501 "7": { 

3502 "text_original": "supprimer un numéro de carte virtuel", 

3503 "text": "supprimer un numéro de carte virtuel", 

3504 "text_preprocessed": "supprimer un numero de carte virtuel", 

3505 "is_deleted": False, 

3506 }, 

3507 "8": { 

3508 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

3509 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

3510 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

3511 "is_deleted": False, 

3512 }, 

3513 "9": { 

3514 "text_original": "Je souhaite connaître le solde de mon compte.", 

3515 "text": "Je souhaite connaître le solde de mon compte.", 

3516 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

3517 "is_deleted": False, 

3518 }, 

3519 "10": { 

3520 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

3521 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

3522 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

3523 "is_deleted": False, 

3524 }, 

3525 "11": { 

3526 "text_original": "Je voudrai connaître le solde de mes comptes.", 

3527 "text": "Je voudrai connaître le solde de mes comptes.", 

3528 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

3529 "is_deleted": False, 

3530 }, 

3531 "12": { 

3532 "text_original": "Quel est le solde de mon compte courant ?", 

3533 "text": "Quel est le solde de mon compte courant ?", 

3534 "text_preprocessed": "quel est le solde de mon compte courant", 

3535 "is_deleted": False, 

3536 }, 

3537 "13": { 

3538 "text_original": "Quel est mon solde bancaire ?", 

3539 "text": "Quel est mon solde bancaire ?", 

3540 "text_preprocessed": "quel est mon solde bancaire", 

3541 "is_deleted": False, 

3542 }, 

3543 "14": { 

3544 "text_original": "solde de mon compte en banque", 

3545 "text": "solde de mon compte en banque", 

3546 "text_preprocessed": "solde de mon compte en banque", 

3547 "is_deleted": True, 

3548 }, 

3549 "15": { 

3550 "text_original": "Mon solde bancaire est-il toujours positif ?", 

3551 "text": "Mon solde bancaire est-il toujours positif ?", 

3552 "text_preprocessed": "mon solde bancaire est il toujours positif", 

3553 "is_deleted": False, 

3554 }, 

3555 "16": { 

3556 "text_original": "carte bancaire avalée", 

3557 "text": "carte bancaire avalée", 

3558 "text_preprocessed": "carte bancaire avalee", 

3559 "is_deleted": False, 

3560 }, 

3561 "17": { 

3562 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3563 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3564 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

3565 "is_deleted": False, 

3566 }, 

3567 "18": { 

3568 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3569 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3570 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

3571 "is_deleted": False, 

3572 }, 

3573 "19": { 

3574 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

3575 "text": "Le distributeur a confisqué ma carte de paiement...", 

3576 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

3577 "is_deleted": False, 

3578 }, 

3579 "20": { 

3580 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

3581 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

3582 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

3583 "is_deleted": False, 

3584 }, 

3585 "21": { 

3586 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

3587 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

3588 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

3589 "is_deleted": False, 

3590 }, 

3591 "22": { 

3592 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

3593 "text": "Que faire si je me suis fait avaler ma carte ?", 

3594 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

3595 "is_deleted": False, 

3596 }, 

3597 "23": { 

3598 "text_original": "récupérer carte bleue avalée par distributeur", 

3599 "text": "récupérer carte bleue avalée par distributeur", 

3600 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

3601 "is_deleted": False, 

3602 }, 

3603 } 

3604 

3605 # Check modelization. 

3606 assert "constraints_manager.pkl" in os.listdir(tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS") 

3607 assert "vectors_2D.json" in os.listdir(tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS") 

3608 assert "vectors_3D.json" in os.listdir(tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS") 

3609 with open( 

3610 tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS" / "modelization.json", "r" 

3611 ) as modelization_before_fileobject: 

3612 assert json.load(modelization_before_fileobject) == { 

3613 "0": { 

3614 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3615 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3616 "COMPONENT": 0, 

3617 }, 

3618 "1": { 

3619 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3620 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3621 "COMPONENT": 0, 

3622 }, 

3623 "2": { 

3624 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3625 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3626 "COMPONENT": 0, 

3627 }, 

3628 "3": { 

3629 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3630 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3631 "COMPONENT": 0, 

3632 }, 

3633 "4": { 

3634 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3635 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3636 "COMPONENT": 0, 

3637 }, 

3638 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

3639 "6": { 

3640 "MUST_LINK": ["1", "2", "3", "6", "0", "4"], 

3641 "CANNOT_LINK": ["22", "20", "21", "7", "17", "19", "18"], 

3642 "COMPONENT": 0, 

3643 }, 

3644 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": ["4", "0", "1", "2", "3", "6"], "COMPONENT": 2}, 

3645 "8": { 

3646 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3647 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3648 "COMPONENT": 3, 

3649 }, 

3650 "9": { 

3651 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3652 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3653 "COMPONENT": 3, 

3654 }, 

3655 "10": { 

3656 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3657 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3658 "COMPONENT": 3, 

3659 }, 

3660 "11": { 

3661 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3662 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3663 "COMPONENT": 3, 

3664 }, 

3665 "12": { 

3666 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3667 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3668 "COMPONENT": 3, 

3669 }, 

3670 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 4}, 

3671 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 5}, 

3672 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 6}, 

3673 "17": { 

3674 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3675 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3676 "COMPONENT": 7, 

3677 }, 

3678 "18": { 

3679 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3680 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3681 "COMPONENT": 7, 

3682 }, 

3683 "19": { 

3684 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3685 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3686 "COMPONENT": 7, 

3687 }, 

3688 "20": { 

3689 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3690 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3691 "COMPONENT": 7, 

3692 }, 

3693 "21": { 

3694 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3695 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3696 "COMPONENT": 7, 

3697 }, 

3698 "22": { 

3699 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3700 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4"], 

3701 "COMPONENT": 7, 

3702 }, 

3703 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 8}, 

3704 } 

3705 

3706 # Run the task. 

3707 fake_backgroundtasks.run_modelization_update_task( 

3708 project_id="1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS", 

3709 ) 

3710 

3711 # Assert status is updated. 

3712 with open( 

3713 tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS" / "status.json", "r" 

3714 ) as status_after_fileobject: 

3715 assert json.load(status_after_fileobject) == { 

3716 "iteration_id": 1, 

3717 "state": "ANNOTATION_WITH_UPTODATE_MODELIZATION", 

3718 "task": None, 

3719 } 

3720 

3721 # Assert texts is updated. 

3722 with open( 

3723 tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS" / "texts.json", "r" 

3724 ) as texts_after_fileobject: 

3725 assert json.load(texts_after_fileobject) == { 

3726 "0": { 

3727 "text_original": "créer un numéro virtuel", 

3728 "text": "créer un numéro virtuel", 

3729 "text_preprocessed": "creer un numero virtuel", 

3730 "is_deleted": False, 

3731 }, 

3732 "1": { 

3733 "text_original": "activer les numéros de carte virtuelle", 

3734 "text": "activer les numéros de carte virtuelle", 

3735 "text_preprocessed": "activer les numeros de carte virtuelle", 

3736 "is_deleted": False, 

3737 }, 

3738 "2": { 

3739 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

3740 "text": "Comment utiliser un numéro de carte virtuelle ?", 

3741 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

3742 "is_deleted": False, 

3743 }, 

3744 "3": { 

3745 "text_original": "débloquer le paiement avec carte virtuelle", 

3746 "text": "débloquer le paiement avec carte virtuelle", 

3747 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

3748 "is_deleted": False, 

3749 }, 

3750 "4": { 

3751 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

3752 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

3753 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

3754 "is_deleted": False, 

3755 }, 

3756 "5": { 

3757 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

3758 "text": "Où puis-je gérer mes numéros virtuels ?", 

3759 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

3760 "is_deleted": False, 

3761 }, 

3762 "6": { 

3763 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

3764 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

3765 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

3766 "is_deleted": False, 

3767 }, 

3768 "7": { 

3769 "text_original": "supprimer un numéro de carte virtuel", 

3770 "text": "supprimer un numéro de carte virtuel", 

3771 "text_preprocessed": "supprimer un numero de carte virtuel", 

3772 "is_deleted": False, 

3773 }, 

3774 "8": { 

3775 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

3776 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

3777 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

3778 "is_deleted": False, 

3779 }, 

3780 "9": { 

3781 "text_original": "Je souhaite connaître le solde de mon compte.", 

3782 "text": "Je souhaite connaître le solde de mon compte.", 

3783 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

3784 "is_deleted": False, 

3785 }, 

3786 "10": { 

3787 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

3788 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

3789 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

3790 "is_deleted": False, 

3791 }, 

3792 "11": { 

3793 "text_original": "Je voudrai connaître le solde de mes comptes.", 

3794 "text": "Je voudrai connaître le solde de mes comptes.", 

3795 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

3796 "is_deleted": False, 

3797 }, 

3798 "12": { 

3799 "text_original": "Quel est le solde de mon compte courant ?", 

3800 "text": "Quel est le solde de mon compte courant ?", 

3801 "text_preprocessed": "quel est le solde de mon compte courant", 

3802 "is_deleted": False, 

3803 }, 

3804 "13": { 

3805 "text_original": "Quel est mon solde bancaire ?", 

3806 "text": "Quel est mon solde bancaire ?", 

3807 "text_preprocessed": "quel est mon solde bancaire", 

3808 "is_deleted": False, 

3809 }, 

3810 "14": { 

3811 "text_original": "solde de mon compte en banque", 

3812 "text": "solde de mon compte en banque", 

3813 "text_preprocessed": "solde de mon compte en banque", 

3814 "is_deleted": True, 

3815 }, 

3816 "15": { 

3817 "text_original": "Mon solde bancaire est-il toujours positif ?", 

3818 "text": "Mon solde bancaire est-il toujours positif ?", 

3819 "text_preprocessed": "mon solde bancaire est il toujours positif", 

3820 "is_deleted": False, 

3821 }, 

3822 "16": { 

3823 "text_original": "carte bancaire avalée", 

3824 "text": "carte bancaire avalée", 

3825 "text_preprocessed": "carte bancaire avalee", 

3826 "is_deleted": False, 

3827 }, 

3828 "17": { 

3829 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3830 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

3831 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

3832 "is_deleted": False, 

3833 }, 

3834 "18": { 

3835 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3836 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

3837 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

3838 "is_deleted": False, 

3839 }, 

3840 "19": { 

3841 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

3842 "text": "Le distributeur a confisqué ma carte de paiement...", 

3843 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

3844 "is_deleted": False, 

3845 }, 

3846 "20": { 

3847 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

3848 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

3849 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

3850 "is_deleted": False, 

3851 }, 

3852 "21": { 

3853 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

3854 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

3855 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

3856 "is_deleted": False, 

3857 }, 

3858 "22": { 

3859 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

3860 "text": "Que faire si je me suis fait avaler ma carte ?", 

3861 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

3862 "is_deleted": False, 

3863 }, 

3864 "23": { 

3865 "text_original": "récupérer carte bleue avalée par distributeur", 

3866 "text": "récupérer carte bleue avalée par distributeur", 

3867 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

3868 "is_deleted": False, 

3869 }, 

3870 } 

3871 

3872 # Assert modelization is updated. 

3873 assert "constraints_manager.pkl" in os.listdir(tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS") 

3874 assert "vectors_2D.json" in os.listdir(tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS") 

3875 assert "vectors_3D.json" in os.listdir(tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS") 

3876 with open( 

3877 tmp_path / "1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS" / "modelization.json", "r" 

3878 ) as modelization_after_fileobject: 

3879 assert json.load(modelization_after_fileobject) == { 

3880 "0": { 

3881 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

3882 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

3883 "COMPONENT": 0, 

3884 }, 

3885 "1": { 

3886 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

3887 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

3888 "COMPONENT": 0, 

3889 }, 

3890 "2": { 

3891 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

3892 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

3893 "COMPONENT": 0, 

3894 }, 

3895 "3": { 

3896 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

3897 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

3898 "COMPONENT": 0, 

3899 }, 

3900 "4": { 

3901 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

3902 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

3903 "COMPONENT": 0, 

3904 }, 

3905 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 1}, 

3906 "6": { 

3907 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

3908 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

3909 "COMPONENT": 0, 

3910 }, 

3911 "7": { 

3912 "MUST_LINK": ["1", "2", "3", "6", "0", "4", "7"], 

3913 "CANNOT_LINK": ["22", "20", "21", "17", "19", "18"], 

3914 "COMPONENT": 0, 

3915 }, 

3916 "8": { 

3917 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3918 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3919 "COMPONENT": 2, 

3920 }, 

3921 "9": { 

3922 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3923 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3924 "COMPONENT": 2, 

3925 }, 

3926 "10": { 

3927 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3928 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3929 "COMPONENT": 2, 

3930 }, 

3931 "11": { 

3932 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3933 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3934 "COMPONENT": 2, 

3935 }, 

3936 "12": { 

3937 "MUST_LINK": ["8", "11", "10", "12", "9"], 

3938 "CANNOT_LINK": ["22", "18", "20", "21", "17", "19"], 

3939 "COMPONENT": 2, 

3940 }, 

3941 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": ["16"], "COMPONENT": 3}, 

3942 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": ["16"], "COMPONENT": 4}, 

3943 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": ["15", "13"], "COMPONENT": 5}, 

3944 "17": { 

3945 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3946 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

3947 "COMPONENT": 6, 

3948 }, 

3949 "18": { 

3950 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3951 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

3952 "COMPONENT": 6, 

3953 }, 

3954 "19": { 

3955 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3956 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

3957 "COMPONENT": 6, 

3958 }, 

3959 "20": { 

3960 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3961 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

3962 "COMPONENT": 6, 

3963 }, 

3964 "21": { 

3965 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3966 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

3967 "COMPONENT": 6, 

3968 }, 

3969 "22": { 

3970 "MUST_LINK": ["18", "19", "17", "21", "20", "22"], 

3971 "CANNOT_LINK": ["8", "11", "10", "12", "9", "6", "1", "2", "3", "0", "4", "7"], 

3972 "COMPONENT": 6, 

3973 }, 

3974 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 7}, 

3975 } 

3976 

3977 

3978# ============================================================================== 

3979# test_ok_erreur_1 

3980# ============================================================================== 

3981 

3982 

3983def test_ok_erreur_1(fake_backgroundtasks, tmp_path): 

3984 """ 

3985 Test the `modelization update` task works. 

3986 

3987 Args: 

3988 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

3989 tmp_path: Pytest fixture: points to a temporary directory. 

3990 """ 

3991 

3992 # Create dummy projects. 

3993 create_dummy_projects( 

3994 tmp_path=tmp_path, 

3995 list_of_dummy_project_ids=[ 

3996 "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION", 

3997 ], 

3998 ) 

3999 

4000 # Check texts. 

4001 with open( 

4002 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

4003 ) as texts_before_fileobject: 

4004 assert json.load(texts_before_fileobject) == { 

4005 "0": { 

4006 "text_original": "créer un numéro virtuel", 

4007 "text": "créer un numéro virtuel", 

4008 "text_preprocessed": "créer un numéro virtuel", 

4009 "is_deleted": False, 

4010 }, 

4011 "1": { 

4012 "text_original": "activer les numéros de carte virtuelle", 

4013 "text": "activer les numéros de carte virtuelle", 

4014 "text_preprocessed": "activer les numéros de carte virtuelle", 

4015 "is_deleted": False, 

4016 }, 

4017 "2": { 

4018 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

4019 "text": "Comment utiliser un numéro de carte virtuelle ?", 

4020 "text_preprocessed": "Comment utiliser un numéro de carte virtuelle ?", 

4021 "is_deleted": False, 

4022 }, 

4023 "3": { 

4024 "text_original": "débloquer le paiement avec carte virtuelle", 

4025 "text": "débloquer le paiement avec carte virtuelle", 

4026 "text_preprocessed": "débloquer le paiement avec carte virtuelle", 

4027 "is_deleted": False, 

4028 }, 

4029 "4": { 

4030 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

4031 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

4032 "text_preprocessed": "obtenir un numéro virtuel pour mes achats en ligne", 

4033 "is_deleted": False, 

4034 }, 

4035 "5": { 

4036 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

4037 "text": "Où puis-je gérer mes numéros virtuels ?", 

4038 "text_preprocessed": "Où puis-je gérer mes numéros virtuels ?", 

4039 "is_deleted": False, 

4040 }, 

4041 "6": { 

4042 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

4043 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

4044 "text_preprocessed": "Que faire pour activer une carte bancaire virtuelle ?", 

4045 "is_deleted": False, 

4046 }, 

4047 "7": { 

4048 "text_original": "supprimer un numéro de carte virtuel", 

4049 "text": "supprimer un numéro de carte virtuel", 

4050 "text_preprocessed": "supprimer un numéro de carte virtuel", 

4051 "is_deleted": False, 

4052 }, 

4053 "8": { 

4054 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

4055 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

4056 "text_preprocessed": "Combien d'argent me reste-t-il sur mon compte ?", 

4057 "is_deleted": False, 

4058 }, 

4059 "9": { 

4060 "text_original": "Je souhaite connaître le solde de mon compte.", 

4061 "text": "Je souhaite connaître le solde de mon compte.", 

4062 "text_preprocessed": "Je souhaite connaître le solde de mon compte.", 

4063 "is_deleted": False, 

4064 }, 

4065 "10": { 

4066 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

4067 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

4068 "text_preprocessed": "Le solde de mon compte en banque est-il dans le rouge ?", 

4069 "is_deleted": False, 

4070 }, 

4071 "11": { 

4072 "text_original": "Je voudrai connaître le solde de mes comptes.", 

4073 "text": "Je voudrai connaître le solde de mes comptes.", 

4074 "text_preprocessed": "Je voudrai connaître le solde de mes comptes.", 

4075 "is_deleted": False, 

4076 }, 

4077 "12": { 

4078 "text_original": "Quel est le solde de mon compte courant ?", 

4079 "text": "Quel est le solde de mon compte courant ?", 

4080 "text_preprocessed": "Quel est le solde de mon compte courant ?", 

4081 "is_deleted": False, 

4082 }, 

4083 "13": { 

4084 "text_original": "Quel est mon solde bancaire ?", 

4085 "text": "Quel est mon solde bancaire ?", 

4086 "text_preprocessed": "Quel est mon solde bancaire ?", 

4087 "is_deleted": False, 

4088 }, 

4089 "14": { 

4090 "text_original": "solde de mon compte en banque", 

4091 "text": "solde de mon compte en banque", 

4092 "text_preprocessed": "solde de mon compte en banque", 

4093 "is_deleted": False, 

4094 }, 

4095 "15": { 

4096 "text_original": "Mon solde bancaire est-il toujours positif ?", 

4097 "text": "Mon solde bancaire est-il toujours positif ?", 

4098 "text_preprocessed": "Mon solde bancaire est-il toujours positif ?", 

4099 "is_deleted": False, 

4100 }, 

4101 "16": { 

4102 "text_original": "carte bancaire avalée", 

4103 "text": "carte bancaire avalée", 

4104 "text_preprocessed": "carte bancaire avalée", 

4105 "is_deleted": False, 

4106 }, 

4107 "17": { 

4108 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4109 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4110 "text_preprocessed": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4111 "is_deleted": False, 

4112 }, 

4113 "18": { 

4114 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4115 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4116 "text_preprocessed": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4117 "is_deleted": False, 

4118 }, 

4119 "19": { 

4120 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

4121 "text": "Le distributeur a confisqué ma carte de paiement...", 

4122 "text_preprocessed": "Le distributeur a confisqué ma carte de paiement...", 

4123 "is_deleted": False, 

4124 }, 

4125 "20": { 

4126 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

4127 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

4128 "text_preprocessed": "Le GAB a gardé ma carte de crédit, que faire ?", 

4129 "is_deleted": False, 

4130 }, 

4131 "21": { 

4132 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

4133 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

4134 "text_preprocessed": "Pourquoi ma carte a-t-elle été avalée ?", 

4135 "is_deleted": False, 

4136 }, 

4137 "22": { 

4138 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

4139 "text": "Que faire si je me suis fait avaler ma carte ?", 

4140 "text_preprocessed": "Que faire si je me suis fait avaler ma carte ?", 

4141 "is_deleted": False, 

4142 }, 

4143 "23": { 

4144 "text_original": "récupérer carte bleue avalée par distributeur", 

4145 "text": "récupérer carte bleue avalée par distributeur", 

4146 "text_preprocessed": "récupérer carte bleue avalée par distributeur", 

4147 "is_deleted": False, 

4148 }, 

4149 } 

4150 

4151 # Check modelization. 

4152 assert "constraints_manager.pkl" not in os.listdir( 

4153 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" 

4154 ) 

4155 assert "vectors_2D.json" not in os.listdir(tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

4156 assert "vectors_3D.json" not in os.listdir(tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

4157 with open( 

4158 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

4159 ) as modelization_before_fileobject: 

4160 assert json.load(modelization_before_fileobject) == { 

4161 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

4162 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

4163 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

4164 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

4165 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

4166 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

4167 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

4168 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

4169 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

4170 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

4171 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

4172 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

4173 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

4174 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

4175 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

4176 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

4177 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

4178 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

4179 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

4180 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

4181 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

4182 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

4183 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

4184 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

4185 } 

4186 

4187 # Run the task. 

4188 fake_backgroundtasks.run_modelization_update_task( 

4189 project_id="import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION", 

4190 ) 

4191 

4192 # Assert status is updated. 

4193 with open( 

4194 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "status.json", "r" 

4195 ) as status_after_fileobject: 

4196 assert json.load(status_after_fileobject) == { 

4197 "iteration_id": 0, 

4198 "state": "INITIALIZATION_WITH_ERRORS", 

4199 "task": None, 

4200 } 

4201 

4202 # Assert texts is updated. 

4203 with open( 

4204 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

4205 ) as texts_after_fileobject: 

4206 assert json.load(texts_after_fileobject) == { 

4207 "0": { 

4208 "text_original": "créer un numéro virtuel", 

4209 "text": "créer un numéro virtuel", 

4210 "text_preprocessed": "creer un numero virtuel", 

4211 "is_deleted": False, 

4212 }, 

4213 "1": { 

4214 "text_original": "activer les numéros de carte virtuelle", 

4215 "text": "activer les numéros de carte virtuelle", 

4216 "text_preprocessed": "activer les numeros de carte virtuelle", 

4217 "is_deleted": False, 

4218 }, 

4219 "2": { 

4220 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

4221 "text": "Comment utiliser un numéro de carte virtuelle ?", 

4222 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

4223 "is_deleted": False, 

4224 }, 

4225 "3": { 

4226 "text_original": "débloquer le paiement avec carte virtuelle", 

4227 "text": "débloquer le paiement avec carte virtuelle", 

4228 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

4229 "is_deleted": False, 

4230 }, 

4231 "4": { 

4232 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

4233 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

4234 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

4235 "is_deleted": False, 

4236 }, 

4237 "5": { 

4238 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

4239 "text": "Où puis-je gérer mes numéros virtuels ?", 

4240 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

4241 "is_deleted": False, 

4242 }, 

4243 "6": { 

4244 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

4245 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

4246 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

4247 "is_deleted": False, 

4248 }, 

4249 "7": { 

4250 "text_original": "supprimer un numéro de carte virtuel", 

4251 "text": "supprimer un numéro de carte virtuel", 

4252 "text_preprocessed": "supprimer un numero de carte virtuel", 

4253 "is_deleted": False, 

4254 }, 

4255 "8": { 

4256 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

4257 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

4258 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

4259 "is_deleted": False, 

4260 }, 

4261 "9": { 

4262 "text_original": "Je souhaite connaître le solde de mon compte.", 

4263 "text": "Je souhaite connaître le solde de mon compte.", 

4264 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

4265 "is_deleted": False, 

4266 }, 

4267 "10": { 

4268 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

4269 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

4270 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

4271 "is_deleted": False, 

4272 }, 

4273 "11": { 

4274 "text_original": "Je voudrai connaître le solde de mes comptes.", 

4275 "text": "Je voudrai connaître le solde de mes comptes.", 

4276 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

4277 "is_deleted": False, 

4278 }, 

4279 "12": { 

4280 "text_original": "Quel est le solde de mon compte courant ?", 

4281 "text": "Quel est le solde de mon compte courant ?", 

4282 "text_preprocessed": "quel est le solde de mon compte courant", 

4283 "is_deleted": False, 

4284 }, 

4285 "13": { 

4286 "text_original": "Quel est mon solde bancaire ?", 

4287 "text": "Quel est mon solde bancaire ?", 

4288 "text_preprocessed": "quel est mon solde bancaire", 

4289 "is_deleted": False, 

4290 }, 

4291 "14": { 

4292 "text_original": "solde de mon compte en banque", 

4293 "text": "solde de mon compte en banque", 

4294 "text_preprocessed": "solde de mon compte en banque", 

4295 "is_deleted": False, 

4296 }, 

4297 "15": { 

4298 "text_original": "Mon solde bancaire est-il toujours positif ?", 

4299 "text": "Mon solde bancaire est-il toujours positif ?", 

4300 "text_preprocessed": "mon solde bancaire est il toujours positif", 

4301 "is_deleted": False, 

4302 }, 

4303 "16": { 

4304 "text_original": "carte bancaire avalée", 

4305 "text": "carte bancaire avalée", 

4306 "text_preprocessed": "carte bancaire avalee", 

4307 "is_deleted": False, 

4308 }, 

4309 "17": { 

4310 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4311 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4312 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

4313 "is_deleted": False, 

4314 }, 

4315 "18": { 

4316 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4317 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4318 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

4319 "is_deleted": False, 

4320 }, 

4321 "19": { 

4322 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

4323 "text": "Le distributeur a confisqué ma carte de paiement...", 

4324 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

4325 "is_deleted": False, 

4326 }, 

4327 "20": { 

4328 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

4329 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

4330 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

4331 "is_deleted": False, 

4332 }, 

4333 "21": { 

4334 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

4335 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

4336 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

4337 "is_deleted": False, 

4338 }, 

4339 "22": { 

4340 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

4341 "text": "Que faire si je me suis fait avaler ma carte ?", 

4342 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

4343 "is_deleted": False, 

4344 }, 

4345 "23": { 

4346 "text_original": "récupérer carte bleue avalée par distributeur", 

4347 "text": "récupérer carte bleue avalée par distributeur", 

4348 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

4349 "is_deleted": False, 

4350 }, 

4351 } 

4352 

4353 # Assert modelization is updated. 

4354 assert "constraints_manager.pkl" in os.listdir( 

4355 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" 

4356 ) 

4357 assert "vectors_2D.json" in os.listdir(tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

4358 assert "vectors_3D.json" in os.listdir(tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION") 

4359 with open( 

4360 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

4361 ) as modelization_after_fileobject: 

4362 assert json.load(modelization_after_fileobject) == { 

4363 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

4364 "1": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

4365 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

4366 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

4367 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": ["7", "1", "6"], "COMPONENT": 4}, 

4368 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

4369 "6": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

4370 "7": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

4371 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 6}, 

4372 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 7}, 

4373 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 8}, 

4374 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 9}, 

4375 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 10}, 

4376 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 11}, 

4377 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 12}, 

4378 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 13}, 

4379 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 14}, 

4380 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 15}, 

4381 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 16}, 

4382 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 17}, 

4383 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 18}, 

4384 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 19}, 

4385 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 20}, 

4386 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 21}, 

4387 } 

4388 with open( 

4389 tmp_path / "import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION" / "constraints.json", "r" 

4390 ) as constraints_after_fileobject: 

4391 assert json.load(constraints_after_fileobject) == { 

4392 "(4,7)": { 

4393 "data": {"id_1": "4", "id_2": "7"}, 

4394 "constraint_type": "CANNOT_LINK", 

4395 "constraint_type_previous": [None, "MUST_LINK"], 

4396 "is_hidden": False, 

4397 "to_annotate": False, 

4398 "to_review": True, 

4399 "to_fix_conflict": False, 

4400 "comment": "", 

4401 "date_of_update": 1657545553.46324, 

4402 "iteration_of_sampling": 0, 

4403 }, 

4404 "(1,6)": { 

4405 "data": {"id_1": "1", "id_2": "6"}, 

4406 "constraint_type": "MUST_LINK", 

4407 "constraint_type_previous": [None], 

4408 "is_hidden": False, 

4409 "to_annotate": False, 

4410 "to_review": True, 

4411 "to_fix_conflict": False, 

4412 "comment": "", 

4413 "date_of_update": 1657543490.330898, 

4414 "iteration_of_sampling": 0, 

4415 }, 

4416 "(1,7)": { 

4417 "data": {"id_1": "1", "id_2": "7"}, 

4418 "constraint_type": "MUST_LINK", 

4419 "constraint_type_previous": [None], 

4420 "is_hidden": False, 

4421 "to_annotate": False, 

4422 "to_review": True, 

4423 "to_fix_conflict": False, 

4424 "comment": "", 

4425 "date_of_update": 1657543507.347849, 

4426 "iteration_of_sampling": 0, 

4427 }, 

4428 "(4,6)": { 

4429 "data": {"id_1": "4", "id_2": "6"}, 

4430 "constraint_type": "MUST_LINK", 

4431 "constraint_type_previous": [None], 

4432 "is_hidden": False, 

4433 "to_annotate": False, 

4434 "to_review": True, 

4435 "to_fix_conflict": True, 

4436 "comment": "", 

4437 "date_of_update": 1657545344.703469, 

4438 "iteration_of_sampling": 0, 

4439 }, 

4440 } 

4441 

4442 

4443# ============================================================================== 

4444# test_ok_erreur_2 

4445# ============================================================================== 

4446 

4447 

4448def test_ok_erreur_2(fake_backgroundtasks, tmp_path): 

4449 """ 

4450 Test the `modelization update` task works. 

4451 

4452 Args: 

4453 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

4454 tmp_path: Pytest fixture: points to a temporary directory. 

4455 """ 

4456 

4457 # Create dummy projects. 

4458 create_dummy_projects( 

4459 tmp_path=tmp_path, 

4460 list_of_dummy_project_ids=[ 

4461 "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION", 

4462 ], 

4463 ) 

4464 

4465 # Check texts. 

4466 with open( 

4467 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

4468 ) as texts_before_fileobject: 

4469 assert json.load(texts_before_fileobject) == { 

4470 "0": { 

4471 "text_original": "créer un numéro virtuel", 

4472 "text": "créer un numéro virtuel", 

4473 "text_preprocessed": "creer un numero virtuel", 

4474 "is_deleted": False, 

4475 }, 

4476 "1": { 

4477 "text_original": "activer les numéros de carte virtuelle", 

4478 "text": "activer les numéros de carte virtuelle", 

4479 "text_preprocessed": "activer les numeros de carte virtuelle", 

4480 "is_deleted": False, 

4481 }, 

4482 "2": { 

4483 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

4484 "text": "Comment utiliser un numéro de carte virtuelle ?", 

4485 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

4486 "is_deleted": False, 

4487 }, 

4488 "3": { 

4489 "text_original": "débloquer le paiement avec carte virtuelle", 

4490 "text": "débloquer le paiement avec carte virtuelle", 

4491 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

4492 "is_deleted": False, 

4493 }, 

4494 "4": { 

4495 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

4496 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

4497 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

4498 "is_deleted": False, 

4499 }, 

4500 "5": { 

4501 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

4502 "text": "Où puis-je gérer mes numéros virtuels ?", 

4503 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

4504 "is_deleted": False, 

4505 }, 

4506 "6": { 

4507 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

4508 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

4509 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

4510 "is_deleted": False, 

4511 }, 

4512 "7": { 

4513 "text_original": "supprimer un numéro de carte virtuel", 

4514 "text": "supprimer un numéro de carte virtuel", 

4515 "text_preprocessed": "supprimer un numero de carte virtuel", 

4516 "is_deleted": False, 

4517 }, 

4518 "8": { 

4519 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

4520 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

4521 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

4522 "is_deleted": False, 

4523 }, 

4524 "9": { 

4525 "text_original": "Je souhaite connaître le solde de mon compte.", 

4526 "text": "Je souhaite connaître le solde de mon compte.", 

4527 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

4528 "is_deleted": False, 

4529 }, 

4530 "10": { 

4531 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

4532 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

4533 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

4534 "is_deleted": False, 

4535 }, 

4536 "11": { 

4537 "text_original": "Je voudrai connaître le solde de mes comptes.", 

4538 "text": "Je voudrai connaître le solde de mes comptes.", 

4539 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

4540 "is_deleted": False, 

4541 }, 

4542 "12": { 

4543 "text_original": "Quel est le solde de mon compte courant ?", 

4544 "text": "Quel est le solde de mon compte courant ?", 

4545 "text_preprocessed": "quel est le solde de mon compte courant", 

4546 "is_deleted": False, 

4547 }, 

4548 "13": { 

4549 "text_original": "Quel est mon solde bancaire ?", 

4550 "text": "Quel est mon solde bancaire ?", 

4551 "text_preprocessed": "quel est mon solde bancaire", 

4552 "is_deleted": False, 

4553 }, 

4554 "14": { 

4555 "text_original": "solde de mon compte en banque", 

4556 "text": "solde de mon compte en banque", 

4557 "text_preprocessed": "solde de mon compte en banque", 

4558 "is_deleted": False, 

4559 }, 

4560 "15": { 

4561 "text_original": "Mon solde bancaire est-il toujours positif ?", 

4562 "text": "Mon solde bancaire est-il toujours positif ?", 

4563 "text_preprocessed": "mon solde bancaire est il toujours positif", 

4564 "is_deleted": False, 

4565 }, 

4566 "16": { 

4567 "text_original": "carte bancaire avalée", 

4568 "text": "carte bancaire avalée", 

4569 "text_preprocessed": "carte bancaire avalee", 

4570 "is_deleted": False, 

4571 }, 

4572 "17": { 

4573 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4574 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4575 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

4576 "is_deleted": False, 

4577 }, 

4578 "18": { 

4579 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4580 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4581 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

4582 "is_deleted": False, 

4583 }, 

4584 "19": { 

4585 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

4586 "text": "Le distributeur a confisqué ma carte de paiement...", 

4587 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

4588 "is_deleted": False, 

4589 }, 

4590 "20": { 

4591 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

4592 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

4593 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

4594 "is_deleted": False, 

4595 }, 

4596 "21": { 

4597 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

4598 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

4599 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

4600 "is_deleted": False, 

4601 }, 

4602 "22": { 

4603 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

4604 "text": "Que faire si je me suis fait avaler ma carte ?", 

4605 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

4606 "is_deleted": False, 

4607 }, 

4608 "23": { 

4609 "text_original": "récupérer carte bleue avalée par distributeur", 

4610 "text": "récupérer carte bleue avalée par distributeur", 

4611 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

4612 "is_deleted": False, 

4613 }, 

4614 } 

4615 

4616 # Check modelization. 

4617 assert "constraints_manager.pkl" not in os.listdir( 

4618 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

4619 ) 

4620 assert "vectors_2D.json" not in os.listdir( 

4621 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

4622 ) 

4623 assert "vectors_3D.json" not in os.listdir( 

4624 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

4625 ) 

4626 with open( 

4627 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

4628 ) as modelization_before_fileobject: 

4629 assert json.load(modelization_before_fileobject) == { 

4630 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

4631 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

4632 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

4633 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

4634 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

4635 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

4636 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

4637 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

4638 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

4639 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

4640 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

4641 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

4642 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

4643 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

4644 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

4645 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

4646 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

4647 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

4648 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

4649 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

4650 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

4651 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

4652 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

4653 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

4654 } 

4655 

4656 # Run the task. 

4657 fake_backgroundtasks.run_modelization_update_task( 

4658 project_id="import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION", 

4659 ) 

4660 

4661 # Assert status is updated. 

4662 with open( 

4663 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "status.json", "r" 

4664 ) as status_after_fileobject: 

4665 assert json.load(status_after_fileobject) == { 

4666 "iteration_id": 1, 

4667 "state": "IMPORT_AT_SAMPLING_STEP_WITH_ERRORS", 

4668 "task": None, 

4669 } 

4670 

4671 # Assert texts is updated. 

4672 with open( 

4673 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

4674 ) as texts_after_fileobject: 

4675 assert json.load(texts_after_fileobject) == { 

4676 "0": { 

4677 "text_original": "créer un numéro virtuel", 

4678 "text": "créer un numéro virtuel", 

4679 "text_preprocessed": "creer un numero virtuel", 

4680 "is_deleted": False, 

4681 }, 

4682 "1": { 

4683 "text_original": "activer les numéros de carte virtuelle", 

4684 "text": "activer les numéros de carte virtuelle", 

4685 "text_preprocessed": "activer les numeros de carte virtuelle", 

4686 "is_deleted": False, 

4687 }, 

4688 "2": { 

4689 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

4690 "text": "Comment utiliser un numéro de carte virtuelle ?", 

4691 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

4692 "is_deleted": False, 

4693 }, 

4694 "3": { 

4695 "text_original": "débloquer le paiement avec carte virtuelle", 

4696 "text": "débloquer le paiement avec carte virtuelle", 

4697 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

4698 "is_deleted": False, 

4699 }, 

4700 "4": { 

4701 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

4702 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

4703 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

4704 "is_deleted": False, 

4705 }, 

4706 "5": { 

4707 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

4708 "text": "Où puis-je gérer mes numéros virtuels ?", 

4709 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

4710 "is_deleted": False, 

4711 }, 

4712 "6": { 

4713 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

4714 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

4715 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

4716 "is_deleted": False, 

4717 }, 

4718 "7": { 

4719 "text_original": "supprimer un numéro de carte virtuel", 

4720 "text": "supprimer un numéro de carte virtuel", 

4721 "text_preprocessed": "supprimer un numero de carte virtuel", 

4722 "is_deleted": False, 

4723 }, 

4724 "8": { 

4725 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

4726 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

4727 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

4728 "is_deleted": False, 

4729 }, 

4730 "9": { 

4731 "text_original": "Je souhaite connaître le solde de mon compte.", 

4732 "text": "Je souhaite connaître le solde de mon compte.", 

4733 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

4734 "is_deleted": False, 

4735 }, 

4736 "10": { 

4737 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

4738 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

4739 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

4740 "is_deleted": False, 

4741 }, 

4742 "11": { 

4743 "text_original": "Je voudrai connaître le solde de mes comptes.", 

4744 "text": "Je voudrai connaître le solde de mes comptes.", 

4745 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

4746 "is_deleted": False, 

4747 }, 

4748 "12": { 

4749 "text_original": "Quel est le solde de mon compte courant ?", 

4750 "text": "Quel est le solde de mon compte courant ?", 

4751 "text_preprocessed": "quel est le solde de mon compte courant", 

4752 "is_deleted": False, 

4753 }, 

4754 "13": { 

4755 "text_original": "Quel est mon solde bancaire ?", 

4756 "text": "Quel est mon solde bancaire ?", 

4757 "text_preprocessed": "quel est mon solde bancaire", 

4758 "is_deleted": False, 

4759 }, 

4760 "14": { 

4761 "text_original": "solde de mon compte en banque", 

4762 "text": "solde de mon compte en banque", 

4763 "text_preprocessed": "solde de mon compte en banque", 

4764 "is_deleted": False, 

4765 }, 

4766 "15": { 

4767 "text_original": "Mon solde bancaire est-il toujours positif ?", 

4768 "text": "Mon solde bancaire est-il toujours positif ?", 

4769 "text_preprocessed": "mon solde bancaire est il toujours positif", 

4770 "is_deleted": False, 

4771 }, 

4772 "16": { 

4773 "text_original": "carte bancaire avalée", 

4774 "text": "carte bancaire avalée", 

4775 "text_preprocessed": "carte bancaire avalee", 

4776 "is_deleted": False, 

4777 }, 

4778 "17": { 

4779 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4780 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

4781 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

4782 "is_deleted": False, 

4783 }, 

4784 "18": { 

4785 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4786 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

4787 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

4788 "is_deleted": False, 

4789 }, 

4790 "19": { 

4791 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

4792 "text": "Le distributeur a confisqué ma carte de paiement...", 

4793 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

4794 "is_deleted": False, 

4795 }, 

4796 "20": { 

4797 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

4798 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

4799 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

4800 "is_deleted": False, 

4801 }, 

4802 "21": { 

4803 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

4804 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

4805 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

4806 "is_deleted": False, 

4807 }, 

4808 "22": { 

4809 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

4810 "text": "Que faire si je me suis fait avaler ma carte ?", 

4811 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

4812 "is_deleted": False, 

4813 }, 

4814 "23": { 

4815 "text_original": "récupérer carte bleue avalée par distributeur", 

4816 "text": "récupérer carte bleue avalée par distributeur", 

4817 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

4818 "is_deleted": False, 

4819 }, 

4820 } 

4821 

4822 # Assert modelization is updated. 

4823 assert "constraints_manager.pkl" in os.listdir( 

4824 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

4825 ) 

4826 assert "vectors_2D.json" in os.listdir( 

4827 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

4828 ) 

4829 assert "vectors_3D.json" in os.listdir( 

4830 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" 

4831 ) 

4832 with open( 

4833 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

4834 ) as modelization_after_fileobject: 

4835 assert json.load(modelization_after_fileobject) == { 

4836 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

4837 "1": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

4838 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

4839 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

4840 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": ["7", "1", "6"], "COMPONENT": 4}, 

4841 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

4842 "6": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

4843 "7": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

4844 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 6}, 

4845 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 7}, 

4846 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 8}, 

4847 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 9}, 

4848 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 10}, 

4849 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 11}, 

4850 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 12}, 

4851 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 13}, 

4852 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 14}, 

4853 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 15}, 

4854 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 16}, 

4855 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 17}, 

4856 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 18}, 

4857 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 19}, 

4858 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 20}, 

4859 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 21}, 

4860 } 

4861 with open( 

4862 tmp_path / "import_error_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION" / "constraints.json", "r" 

4863 ) as constraints_after_fileobject: 

4864 assert json.load(constraints_after_fileobject) == { 

4865 "(4,7)": { 

4866 "data": {"id_1": "4", "id_2": "7"}, 

4867 "constraint_type": "CANNOT_LINK", 

4868 "constraint_type_previous": [None, "MUST_LINK"], 

4869 "is_hidden": False, 

4870 "to_annotate": False, 

4871 "to_review": True, 

4872 "to_fix_conflict": False, 

4873 "comment": "", 

4874 "date_of_update": 1657545553.46324, 

4875 "iteration_of_sampling": 0, 

4876 }, 

4877 "(1,6)": { 

4878 "data": {"id_1": "1", "id_2": "6"}, 

4879 "constraint_type": "MUST_LINK", 

4880 "constraint_type_previous": [None], 

4881 "is_hidden": False, 

4882 "to_annotate": False, 

4883 "to_review": True, 

4884 "to_fix_conflict": False, 

4885 "comment": "", 

4886 "date_of_update": 1657543490.330898, 

4887 "iteration_of_sampling": 0, 

4888 }, 

4889 "(1,7)": { 

4890 "data": {"id_1": "1", "id_2": "7"}, 

4891 "constraint_type": "MUST_LINK", 

4892 "constraint_type_previous": [None], 

4893 "is_hidden": False, 

4894 "to_annotate": False, 

4895 "to_review": True, 

4896 "to_fix_conflict": False, 

4897 "comment": "", 

4898 "date_of_update": 1657543507.347849, 

4899 "iteration_of_sampling": 0, 

4900 }, 

4901 "(4,6)": { 

4902 "data": {"id_1": "4", "id_2": "6"}, 

4903 "constraint_type": "MUST_LINK", 

4904 "constraint_type_previous": [None], 

4905 "is_hidden": False, 

4906 "to_annotate": False, 

4907 "to_review": True, 

4908 "to_fix_conflict": True, 

4909 "comment": "", 

4910 "date_of_update": 1657545344.703469, 

4911 "iteration_of_sampling": 0, 

4912 }, 

4913 } 

4914 

4915 

4916# ============================================================================== 

4917# test_ok_erreur_3 

4918# ============================================================================== 

4919 

4920 

4921def test_ok_erreur_3(fake_backgroundtasks, tmp_path): 

4922 """ 

4923 Test the `modelization update` task works. 

4924 

4925 Args: 

4926 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

4927 tmp_path: Pytest fixture: points to a temporary directory. 

4928 """ 

4929 

4930 # Create dummy projects. 

4931 create_dummy_projects( 

4932 tmp_path=tmp_path, 

4933 list_of_dummy_project_ids=[ 

4934 "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION", 

4935 ], 

4936 ) 

4937 

4938 # Check texts. 

4939 with open( 

4940 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

4941 ) as texts_before_fileobject: 

4942 assert json.load(texts_before_fileobject) == { 

4943 "0": { 

4944 "text_original": "créer un numéro virtuel", 

4945 "text": "créer un numéro virtuel", 

4946 "text_preprocessed": "creer un numero virtuel", 

4947 "is_deleted": False, 

4948 }, 

4949 "1": { 

4950 "text_original": "activer les numéros de carte virtuelle", 

4951 "text": "activer les numéros de carte virtuelle", 

4952 "text_preprocessed": "activer les numeros de carte virtuelle", 

4953 "is_deleted": False, 

4954 }, 

4955 "2": { 

4956 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

4957 "text": "Comment utiliser un numéro de carte virtuelle ?", 

4958 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

4959 "is_deleted": False, 

4960 }, 

4961 "3": { 

4962 "text_original": "débloquer le paiement avec carte virtuelle", 

4963 "text": "débloquer le paiement avec carte virtuelle", 

4964 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

4965 "is_deleted": False, 

4966 }, 

4967 "4": { 

4968 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

4969 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

4970 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

4971 "is_deleted": False, 

4972 }, 

4973 "5": { 

4974 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

4975 "text": "Où puis-je gérer mes numéros virtuels ?", 

4976 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

4977 "is_deleted": False, 

4978 }, 

4979 "6": { 

4980 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

4981 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

4982 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

4983 "is_deleted": False, 

4984 }, 

4985 "7": { 

4986 "text_original": "supprimer un numéro de carte virtuel", 

4987 "text": "supprimer un numéro de carte virtuel", 

4988 "text_preprocessed": "supprimer un numero de carte virtuel", 

4989 "is_deleted": False, 

4990 }, 

4991 "8": { 

4992 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

4993 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

4994 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

4995 "is_deleted": False, 

4996 }, 

4997 "9": { 

4998 "text_original": "Je souhaite connaître le solde de mon compte.", 

4999 "text": "Je souhaite connaître le solde de mon compte.", 

5000 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

5001 "is_deleted": False, 

5002 }, 

5003 "10": { 

5004 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

5005 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

5006 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

5007 "is_deleted": False, 

5008 }, 

5009 "11": { 

5010 "text_original": "Je voudrai connaître le solde de mes comptes.", 

5011 "text": "Je voudrai connaître le solde de mes comptes.", 

5012 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

5013 "is_deleted": False, 

5014 }, 

5015 "12": { 

5016 "text_original": "Quel est le solde de mon compte courant ?", 

5017 "text": "Quel est le solde de mon compte courant ?", 

5018 "text_preprocessed": "quel est le solde de mon compte courant", 

5019 "is_deleted": False, 

5020 }, 

5021 "13": { 

5022 "text_original": "Quel est mon solde bancaire ?", 

5023 "text": "Quel est mon solde bancaire ?", 

5024 "text_preprocessed": "quel est mon solde bancaire", 

5025 "is_deleted": False, 

5026 }, 

5027 "14": { 

5028 "text_original": "solde de mon compte en banque", 

5029 "text": "solde de mon compte en banque", 

5030 "text_preprocessed": "solde de mon compte en banque", 

5031 "is_deleted": False, 

5032 }, 

5033 "15": { 

5034 "text_original": "Mon solde bancaire est-il toujours positif ?", 

5035 "text": "Mon solde bancaire est-il toujours positif ?", 

5036 "text_preprocessed": "mon solde bancaire est il toujours positif", 

5037 "is_deleted": False, 

5038 }, 

5039 "16": { 

5040 "text_original": "carte bancaire avalée", 

5041 "text": "carte bancaire avalée", 

5042 "text_preprocessed": "carte bancaire avalee", 

5043 "is_deleted": False, 

5044 }, 

5045 "17": { 

5046 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5047 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5048 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

5049 "is_deleted": False, 

5050 }, 

5051 "18": { 

5052 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5053 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5054 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

5055 "is_deleted": False, 

5056 }, 

5057 "19": { 

5058 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

5059 "text": "Le distributeur a confisqué ma carte de paiement...", 

5060 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

5061 "is_deleted": False, 

5062 }, 

5063 "20": { 

5064 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

5065 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

5066 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

5067 "is_deleted": False, 

5068 }, 

5069 "21": { 

5070 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

5071 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

5072 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

5073 "is_deleted": False, 

5074 }, 

5075 "22": { 

5076 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

5077 "text": "Que faire si je me suis fait avaler ma carte ?", 

5078 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

5079 "is_deleted": False, 

5080 }, 

5081 "23": { 

5082 "text_original": "récupérer carte bleue avalée par distributeur", 

5083 "text": "récupérer carte bleue avalée par distributeur", 

5084 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

5085 "is_deleted": False, 

5086 }, 

5087 } 

5088 

5089 # Check modelization. 

5090 assert "constraints_manager.pkl" not in os.listdir( 

5091 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

5092 ) 

5093 assert "vectors_2D.json" not in os.listdir( 

5094 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

5095 ) 

5096 assert "vectors_3D.json" not in os.listdir( 

5097 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

5098 ) 

5099 with open( 

5100 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

5101 ) as modelization_before_fileobject: 

5102 assert json.load(modelization_before_fileobject) == { 

5103 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

5104 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

5105 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

5106 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

5107 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

5108 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

5109 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

5110 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

5111 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

5112 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

5113 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

5114 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

5115 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

5116 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

5117 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

5118 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

5119 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

5120 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

5121 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

5122 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

5123 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

5124 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

5125 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

5126 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

5127 } 

5128 

5129 # Run the task. 

5130 fake_backgroundtasks.run_modelization_update_task( 

5131 project_id="import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION", 

5132 ) 

5133 

5134 # Assert status is updated. 

5135 with open( 

5136 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "status.json", "r" 

5137 ) as status_after_fileobject: 

5138 assert json.load(status_after_fileobject) == { 

5139 "iteration_id": 1, 

5140 "state": "ANNOTATION_WITH_OUTDATED_MODELIZATION_WITH_CONFLICTS", 

5141 "task": None, 

5142 } 

5143 

5144 # Assert texts is updated. 

5145 with open( 

5146 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

5147 ) as texts_after_fileobject: 

5148 assert json.load(texts_after_fileobject) == { 

5149 "0": { 

5150 "text_original": "créer un numéro virtuel", 

5151 "text": "créer un numéro virtuel", 

5152 "text_preprocessed": "creer un numero virtuel", 

5153 "is_deleted": False, 

5154 }, 

5155 "1": { 

5156 "text_original": "activer les numéros de carte virtuelle", 

5157 "text": "activer les numéros de carte virtuelle", 

5158 "text_preprocessed": "activer les numeros de carte virtuelle", 

5159 "is_deleted": False, 

5160 }, 

5161 "2": { 

5162 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

5163 "text": "Comment utiliser un numéro de carte virtuelle ?", 

5164 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

5165 "is_deleted": False, 

5166 }, 

5167 "3": { 

5168 "text_original": "débloquer le paiement avec carte virtuelle", 

5169 "text": "débloquer le paiement avec carte virtuelle", 

5170 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

5171 "is_deleted": False, 

5172 }, 

5173 "4": { 

5174 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

5175 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

5176 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

5177 "is_deleted": False, 

5178 }, 

5179 "5": { 

5180 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

5181 "text": "Où puis-je gérer mes numéros virtuels ?", 

5182 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

5183 "is_deleted": False, 

5184 }, 

5185 "6": { 

5186 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

5187 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

5188 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

5189 "is_deleted": False, 

5190 }, 

5191 "7": { 

5192 "text_original": "supprimer un numéro de carte virtuel", 

5193 "text": "supprimer un numéro de carte virtuel", 

5194 "text_preprocessed": "supprimer un numero de carte virtuel", 

5195 "is_deleted": False, 

5196 }, 

5197 "8": { 

5198 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

5199 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

5200 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

5201 "is_deleted": False, 

5202 }, 

5203 "9": { 

5204 "text_original": "Je souhaite connaître le solde de mon compte.", 

5205 "text": "Je souhaite connaître le solde de mon compte.", 

5206 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

5207 "is_deleted": False, 

5208 }, 

5209 "10": { 

5210 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

5211 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

5212 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

5213 "is_deleted": False, 

5214 }, 

5215 "11": { 

5216 "text_original": "Je voudrai connaître le solde de mes comptes.", 

5217 "text": "Je voudrai connaître le solde de mes comptes.", 

5218 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

5219 "is_deleted": False, 

5220 }, 

5221 "12": { 

5222 "text_original": "Quel est le solde de mon compte courant ?", 

5223 "text": "Quel est le solde de mon compte courant ?", 

5224 "text_preprocessed": "quel est le solde de mon compte courant", 

5225 "is_deleted": False, 

5226 }, 

5227 "13": { 

5228 "text_original": "Quel est mon solde bancaire ?", 

5229 "text": "Quel est mon solde bancaire ?", 

5230 "text_preprocessed": "quel est mon solde bancaire", 

5231 "is_deleted": False, 

5232 }, 

5233 "14": { 

5234 "text_original": "solde de mon compte en banque", 

5235 "text": "solde de mon compte en banque", 

5236 "text_preprocessed": "solde de mon compte en banque", 

5237 "is_deleted": False, 

5238 }, 

5239 "15": { 

5240 "text_original": "Mon solde bancaire est-il toujours positif ?", 

5241 "text": "Mon solde bancaire est-il toujours positif ?", 

5242 "text_preprocessed": "mon solde bancaire est il toujours positif", 

5243 "is_deleted": False, 

5244 }, 

5245 "16": { 

5246 "text_original": "carte bancaire avalée", 

5247 "text": "carte bancaire avalée", 

5248 "text_preprocessed": "carte bancaire avalee", 

5249 "is_deleted": False, 

5250 }, 

5251 "17": { 

5252 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5253 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5254 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

5255 "is_deleted": False, 

5256 }, 

5257 "18": { 

5258 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5259 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5260 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

5261 "is_deleted": False, 

5262 }, 

5263 "19": { 

5264 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

5265 "text": "Le distributeur a confisqué ma carte de paiement...", 

5266 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

5267 "is_deleted": False, 

5268 }, 

5269 "20": { 

5270 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

5271 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

5272 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

5273 "is_deleted": False, 

5274 }, 

5275 "21": { 

5276 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

5277 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

5278 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

5279 "is_deleted": False, 

5280 }, 

5281 "22": { 

5282 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

5283 "text": "Que faire si je me suis fait avaler ma carte ?", 

5284 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

5285 "is_deleted": False, 

5286 }, 

5287 "23": { 

5288 "text_original": "récupérer carte bleue avalée par distributeur", 

5289 "text": "récupérer carte bleue avalée par distributeur", 

5290 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

5291 "is_deleted": False, 

5292 }, 

5293 } 

5294 

5295 # Assert modelization is updated. 

5296 assert "constraints_manager.pkl" in os.listdir( 

5297 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

5298 ) 

5299 assert "vectors_2D.json" in os.listdir( 

5300 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

5301 ) 

5302 assert "vectors_3D.json" in os.listdir( 

5303 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" 

5304 ) 

5305 with open( 

5306 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

5307 ) as modelization_after_fileobject: 

5308 assert json.load(modelization_after_fileobject) == { 

5309 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

5310 "1": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

5311 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

5312 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

5313 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": ["7", "1", "6"], "COMPONENT": 4}, 

5314 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

5315 "6": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

5316 "7": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

5317 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 6}, 

5318 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 7}, 

5319 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 8}, 

5320 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 9}, 

5321 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 10}, 

5322 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 11}, 

5323 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 12}, 

5324 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 13}, 

5325 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 14}, 

5326 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 15}, 

5327 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 16}, 

5328 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 17}, 

5329 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 18}, 

5330 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 19}, 

5331 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 20}, 

5332 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 21}, 

5333 } 

5334 with open( 

5335 tmp_path / "import_error_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION" / "constraints.json", "r" 

5336 ) as constraints_after_fileobject: 

5337 assert json.load(constraints_after_fileobject) == { 

5338 "(4,7)": { 

5339 "data": {"id_1": "4", "id_2": "7"}, 

5340 "constraint_type": "CANNOT_LINK", 

5341 "constraint_type_previous": [None, "MUST_LINK"], 

5342 "is_hidden": False, 

5343 "to_annotate": False, 

5344 "to_review": True, 

5345 "to_fix_conflict": False, 

5346 "comment": "", 

5347 "date_of_update": 1657545553.46324, 

5348 "iteration_of_sampling": 0, 

5349 }, 

5350 "(1,6)": { 

5351 "data": {"id_1": "1", "id_2": "6"}, 

5352 "constraint_type": "MUST_LINK", 

5353 "constraint_type_previous": [None], 

5354 "is_hidden": False, 

5355 "to_annotate": False, 

5356 "to_review": True, 

5357 "to_fix_conflict": False, 

5358 "comment": "", 

5359 "date_of_update": 1657543490.330898, 

5360 "iteration_of_sampling": 0, 

5361 }, 

5362 "(1,7)": { 

5363 "data": {"id_1": "1", "id_2": "7"}, 

5364 "constraint_type": "MUST_LINK", 

5365 "constraint_type_previous": [None], 

5366 "is_hidden": False, 

5367 "to_annotate": False, 

5368 "to_review": True, 

5369 "to_fix_conflict": False, 

5370 "comment": "", 

5371 "date_of_update": 1657543507.347849, 

5372 "iteration_of_sampling": 0, 

5373 }, 

5374 "(4,6)": { 

5375 "data": {"id_1": "4", "id_2": "6"}, 

5376 "constraint_type": "MUST_LINK", 

5377 "constraint_type_previous": [None], 

5378 "is_hidden": False, 

5379 "to_annotate": False, 

5380 "to_review": True, 

5381 "to_fix_conflict": True, 

5382 "comment": "", 

5383 "date_of_update": 1657545344.703469, 

5384 "iteration_of_sampling": 0, 

5385 }, 

5386 } 

5387 

5388 

5389# ============================================================================== 

5390# test_ok_erreur_4 

5391# ============================================================================== 

5392 

5393 

5394def test_ok_erreur_4(fake_backgroundtasks, tmp_path): 

5395 """ 

5396 Test the `modelization update` task works. 

5397 

5398 Args: 

5399 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

5400 tmp_path: Pytest fixture: points to a temporary directory. 

5401 """ 

5402 

5403 # Create dummy projects. 

5404 create_dummy_projects( 

5405 tmp_path=tmp_path, 

5406 list_of_dummy_project_ids=[ 

5407 "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION", 

5408 ], 

5409 ) 

5410 

5411 # Check texts. 

5412 with open( 

5413 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

5414 ) as texts_before_fileobject: 

5415 assert json.load(texts_before_fileobject) == { 

5416 "0": { 

5417 "text_original": "créer un numéro virtuel", 

5418 "text": "créer un numéro virtuel", 

5419 "text_preprocessed": "creer un numero virtuel", 

5420 "is_deleted": False, 

5421 }, 

5422 "1": { 

5423 "text_original": "activer les numéros de carte virtuelle", 

5424 "text": "activer les numéros de carte virtuelle", 

5425 "text_preprocessed": "activer les numeros de carte virtuelle", 

5426 "is_deleted": False, 

5427 }, 

5428 "2": { 

5429 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

5430 "text": "Comment utiliser un numéro de carte virtuelle ?", 

5431 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

5432 "is_deleted": False, 

5433 }, 

5434 "3": { 

5435 "text_original": "débloquer le paiement avec carte virtuelle", 

5436 "text": "débloquer le paiement avec carte virtuelle", 

5437 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

5438 "is_deleted": False, 

5439 }, 

5440 "4": { 

5441 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

5442 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

5443 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

5444 "is_deleted": False, 

5445 }, 

5446 "5": { 

5447 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

5448 "text": "Où puis-je gérer mes numéros virtuels ?", 

5449 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

5450 "is_deleted": False, 

5451 }, 

5452 "6": { 

5453 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

5454 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

5455 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

5456 "is_deleted": False, 

5457 }, 

5458 "7": { 

5459 "text_original": "supprimer un numéro de carte virtuel", 

5460 "text": "supprimer un numéro de carte virtuel", 

5461 "text_preprocessed": "supprimer un numero de carte virtuel", 

5462 "is_deleted": False, 

5463 }, 

5464 "8": { 

5465 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

5466 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

5467 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

5468 "is_deleted": False, 

5469 }, 

5470 "9": { 

5471 "text_original": "Je souhaite connaître le solde de mon compte.", 

5472 "text": "Je souhaite connaître le solde de mon compte.", 

5473 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

5474 "is_deleted": False, 

5475 }, 

5476 "10": { 

5477 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

5478 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

5479 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

5480 "is_deleted": False, 

5481 }, 

5482 "11": { 

5483 "text_original": "Je voudrai connaître le solde de mes comptes.", 

5484 "text": "Je voudrai connaître le solde de mes comptes.", 

5485 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

5486 "is_deleted": False, 

5487 }, 

5488 "12": { 

5489 "text_original": "Quel est le solde de mon compte courant ?", 

5490 "text": "Quel est le solde de mon compte courant ?", 

5491 "text_preprocessed": "quel est le solde de mon compte courant", 

5492 "is_deleted": False, 

5493 }, 

5494 "13": { 

5495 "text_original": "Quel est mon solde bancaire ?", 

5496 "text": "Quel est mon solde bancaire ?", 

5497 "text_preprocessed": "quel est mon solde bancaire", 

5498 "is_deleted": False, 

5499 }, 

5500 "14": { 

5501 "text_original": "solde de mon compte en banque", 

5502 "text": "solde de mon compte en banque", 

5503 "text_preprocessed": "solde de mon compte en banque", 

5504 "is_deleted": False, 

5505 }, 

5506 "15": { 

5507 "text_original": "Mon solde bancaire est-il toujours positif ?", 

5508 "text": "Mon solde bancaire est-il toujours positif ?", 

5509 "text_preprocessed": "mon solde bancaire est il toujours positif", 

5510 "is_deleted": False, 

5511 }, 

5512 "16": { 

5513 "text_original": "carte bancaire avalée", 

5514 "text": "carte bancaire avalée", 

5515 "text_preprocessed": "carte bancaire avalee", 

5516 "is_deleted": False, 

5517 }, 

5518 "17": { 

5519 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5520 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5521 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

5522 "is_deleted": False, 

5523 }, 

5524 "18": { 

5525 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5526 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5527 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

5528 "is_deleted": False, 

5529 }, 

5530 "19": { 

5531 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

5532 "text": "Le distributeur a confisqué ma carte de paiement...", 

5533 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

5534 "is_deleted": False, 

5535 }, 

5536 "20": { 

5537 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

5538 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

5539 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

5540 "is_deleted": False, 

5541 }, 

5542 "21": { 

5543 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

5544 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

5545 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

5546 "is_deleted": False, 

5547 }, 

5548 "22": { 

5549 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

5550 "text": "Que faire si je me suis fait avaler ma carte ?", 

5551 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

5552 "is_deleted": False, 

5553 }, 

5554 "23": { 

5555 "text_original": "récupérer carte bleue avalée par distributeur", 

5556 "text": "récupérer carte bleue avalée par distributeur", 

5557 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

5558 "is_deleted": False, 

5559 }, 

5560 } 

5561 

5562 # Check modelization. 

5563 assert "constraints_manager.pkl" not in os.listdir( 

5564 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

5565 ) 

5566 assert "vectors_2D.json" not in os.listdir( 

5567 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

5568 ) 

5569 assert "vectors_3D.json" not in os.listdir( 

5570 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

5571 ) 

5572 with open( 

5573 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

5574 ) as modelization_before_fileobject: 

5575 assert json.load(modelization_before_fileobject) == { 

5576 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

5577 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

5578 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

5579 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

5580 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

5581 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

5582 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

5583 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

5584 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

5585 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

5586 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

5587 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

5588 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

5589 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

5590 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

5591 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

5592 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

5593 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

5594 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

5595 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

5596 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

5597 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

5598 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

5599 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

5600 } 

5601 

5602 # Run the task. 

5603 fake_backgroundtasks.run_modelization_update_task( 

5604 project_id="import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION", 

5605 ) 

5606 

5607 # Assert status is updated. 

5608 with open( 

5609 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "status.json", "r" 

5610 ) as status_after_fileobject: 

5611 assert json.load(status_after_fileobject) == { 

5612 "iteration_id": 1, 

5613 "state": "IMPORT_AT_CLUSTERING_STEP_WITH_ERRORS", 

5614 "task": None, 

5615 } 

5616 

5617 # Assert texts is updated. 

5618 with open( 

5619 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

5620 ) as texts_after_fileobject: 

5621 assert json.load(texts_after_fileobject) == { 

5622 "0": { 

5623 "text_original": "créer un numéro virtuel", 

5624 "text": "créer un numéro virtuel", 

5625 "text_preprocessed": "creer un numero virtuel", 

5626 "is_deleted": False, 

5627 }, 

5628 "1": { 

5629 "text_original": "activer les numéros de carte virtuelle", 

5630 "text": "activer les numéros de carte virtuelle", 

5631 "text_preprocessed": "activer les numeros de carte virtuelle", 

5632 "is_deleted": False, 

5633 }, 

5634 "2": { 

5635 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

5636 "text": "Comment utiliser un numéro de carte virtuelle ?", 

5637 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

5638 "is_deleted": False, 

5639 }, 

5640 "3": { 

5641 "text_original": "débloquer le paiement avec carte virtuelle", 

5642 "text": "débloquer le paiement avec carte virtuelle", 

5643 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

5644 "is_deleted": False, 

5645 }, 

5646 "4": { 

5647 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

5648 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

5649 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

5650 "is_deleted": False, 

5651 }, 

5652 "5": { 

5653 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

5654 "text": "Où puis-je gérer mes numéros virtuels ?", 

5655 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

5656 "is_deleted": False, 

5657 }, 

5658 "6": { 

5659 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

5660 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

5661 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

5662 "is_deleted": False, 

5663 }, 

5664 "7": { 

5665 "text_original": "supprimer un numéro de carte virtuel", 

5666 "text": "supprimer un numéro de carte virtuel", 

5667 "text_preprocessed": "supprimer un numero de carte virtuel", 

5668 "is_deleted": False, 

5669 }, 

5670 "8": { 

5671 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

5672 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

5673 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

5674 "is_deleted": False, 

5675 }, 

5676 "9": { 

5677 "text_original": "Je souhaite connaître le solde de mon compte.", 

5678 "text": "Je souhaite connaître le solde de mon compte.", 

5679 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

5680 "is_deleted": False, 

5681 }, 

5682 "10": { 

5683 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

5684 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

5685 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

5686 "is_deleted": False, 

5687 }, 

5688 "11": { 

5689 "text_original": "Je voudrai connaître le solde de mes comptes.", 

5690 "text": "Je voudrai connaître le solde de mes comptes.", 

5691 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

5692 "is_deleted": False, 

5693 }, 

5694 "12": { 

5695 "text_original": "Quel est le solde de mon compte courant ?", 

5696 "text": "Quel est le solde de mon compte courant ?", 

5697 "text_preprocessed": "quel est le solde de mon compte courant", 

5698 "is_deleted": False, 

5699 }, 

5700 "13": { 

5701 "text_original": "Quel est mon solde bancaire ?", 

5702 "text": "Quel est mon solde bancaire ?", 

5703 "text_preprocessed": "quel est mon solde bancaire", 

5704 "is_deleted": False, 

5705 }, 

5706 "14": { 

5707 "text_original": "solde de mon compte en banque", 

5708 "text": "solde de mon compte en banque", 

5709 "text_preprocessed": "solde de mon compte en banque", 

5710 "is_deleted": False, 

5711 }, 

5712 "15": { 

5713 "text_original": "Mon solde bancaire est-il toujours positif ?", 

5714 "text": "Mon solde bancaire est-il toujours positif ?", 

5715 "text_preprocessed": "mon solde bancaire est il toujours positif", 

5716 "is_deleted": False, 

5717 }, 

5718 "16": { 

5719 "text_original": "carte bancaire avalée", 

5720 "text": "carte bancaire avalée", 

5721 "text_preprocessed": "carte bancaire avalee", 

5722 "is_deleted": False, 

5723 }, 

5724 "17": { 

5725 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5726 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5727 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

5728 "is_deleted": False, 

5729 }, 

5730 "18": { 

5731 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5732 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5733 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

5734 "is_deleted": False, 

5735 }, 

5736 "19": { 

5737 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

5738 "text": "Le distributeur a confisqué ma carte de paiement...", 

5739 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

5740 "is_deleted": False, 

5741 }, 

5742 "20": { 

5743 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

5744 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

5745 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

5746 "is_deleted": False, 

5747 }, 

5748 "21": { 

5749 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

5750 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

5751 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

5752 "is_deleted": False, 

5753 }, 

5754 "22": { 

5755 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

5756 "text": "Que faire si je me suis fait avaler ma carte ?", 

5757 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

5758 "is_deleted": False, 

5759 }, 

5760 "23": { 

5761 "text_original": "récupérer carte bleue avalée par distributeur", 

5762 "text": "récupérer carte bleue avalée par distributeur", 

5763 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

5764 "is_deleted": False, 

5765 }, 

5766 } 

5767 

5768 # Assert modelization is updated. 

5769 assert "constraints_manager.pkl" in os.listdir( 

5770 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

5771 ) 

5772 assert "vectors_2D.json" in os.listdir( 

5773 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

5774 ) 

5775 assert "vectors_3D.json" in os.listdir( 

5776 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" 

5777 ) 

5778 with open( 

5779 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

5780 ) as modelization_after_fileobject: 

5781 assert json.load(modelization_after_fileobject) == { 

5782 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

5783 "1": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

5784 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

5785 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

5786 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": ["7", "1", "6"], "COMPONENT": 4}, 

5787 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

5788 "6": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

5789 "7": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

5790 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 6}, 

5791 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 7}, 

5792 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 8}, 

5793 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 9}, 

5794 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 10}, 

5795 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 11}, 

5796 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 12}, 

5797 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 13}, 

5798 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 14}, 

5799 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 15}, 

5800 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 16}, 

5801 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 17}, 

5802 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 18}, 

5803 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 19}, 

5804 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 20}, 

5805 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 21}, 

5806 } 

5807 with open( 

5808 tmp_path / "import_error_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION" / "constraints.json", "r" 

5809 ) as constraints_after_fileobject: 

5810 assert json.load(constraints_after_fileobject) == { 

5811 "(4,7)": { 

5812 "data": {"id_1": "4", "id_2": "7"}, 

5813 "constraint_type": "CANNOT_LINK", 

5814 "constraint_type_previous": [None, "MUST_LINK"], 

5815 "is_hidden": False, 

5816 "to_annotate": False, 

5817 "to_review": True, 

5818 "to_fix_conflict": False, 

5819 "comment": "", 

5820 "date_of_update": 1657545553.46324, 

5821 "iteration_of_sampling": 0, 

5822 }, 

5823 "(1,6)": { 

5824 "data": {"id_1": "1", "id_2": "6"}, 

5825 "constraint_type": "MUST_LINK", 

5826 "constraint_type_previous": [None], 

5827 "is_hidden": False, 

5828 "to_annotate": False, 

5829 "to_review": True, 

5830 "to_fix_conflict": False, 

5831 "comment": "", 

5832 "date_of_update": 1657543490.330898, 

5833 "iteration_of_sampling": 0, 

5834 }, 

5835 "(1,7)": { 

5836 "data": {"id_1": "1", "id_2": "7"}, 

5837 "constraint_type": "MUST_LINK", 

5838 "constraint_type_previous": [None], 

5839 "is_hidden": False, 

5840 "to_annotate": False, 

5841 "to_review": True, 

5842 "to_fix_conflict": False, 

5843 "comment": "", 

5844 "date_of_update": 1657543507.347849, 

5845 "iteration_of_sampling": 0, 

5846 }, 

5847 "(4,6)": { 

5848 "data": {"id_1": "4", "id_2": "6"}, 

5849 "constraint_type": "MUST_LINK", 

5850 "constraint_type_previous": [None], 

5851 "is_hidden": False, 

5852 "to_annotate": False, 

5853 "to_review": True, 

5854 "to_fix_conflict": True, 

5855 "comment": "", 

5856 "date_of_update": 1657545344.703469, 

5857 "iteration_of_sampling": 0, 

5858 }, 

5859 } 

5860 

5861 

5862# ============================================================================== 

5863# test_ok_erreur_5 

5864# ============================================================================== 

5865 

5866 

5867def test_ok_erreur_5(fake_backgroundtasks, tmp_path): 

5868 """ 

5869 Test the `modelization update` task works. 

5870 

5871 Args: 

5872 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`. 

5873 tmp_path: Pytest fixture: points to a temporary directory. 

5874 """ 

5875 

5876 # Create dummy projects. 

5877 create_dummy_projects( 

5878 tmp_path=tmp_path, 

5879 list_of_dummy_project_ids=[ 

5880 "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION", 

5881 ], 

5882 ) 

5883 

5884 # Check texts. 

5885 with open( 

5886 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

5887 ) as texts_before_fileobject: 

5888 assert json.load(texts_before_fileobject) == { 

5889 "0": { 

5890 "text_original": "créer un numéro virtuel", 

5891 "text": "créer un numéro virtuel", 

5892 "text_preprocessed": "creer un numero virtuel", 

5893 "is_deleted": False, 

5894 }, 

5895 "1": { 

5896 "text_original": "activer les numéros de carte virtuelle", 

5897 "text": "activer les numéros de carte virtuelle", 

5898 "text_preprocessed": "activer les numeros de carte virtuelle", 

5899 "is_deleted": False, 

5900 }, 

5901 "2": { 

5902 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

5903 "text": "Comment utiliser un numéro de carte virtuelle ?", 

5904 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

5905 "is_deleted": False, 

5906 }, 

5907 "3": { 

5908 "text_original": "débloquer le paiement avec carte virtuelle", 

5909 "text": "débloquer le paiement avec carte virtuelle", 

5910 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

5911 "is_deleted": False, 

5912 }, 

5913 "4": { 

5914 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

5915 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

5916 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

5917 "is_deleted": False, 

5918 }, 

5919 "5": { 

5920 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

5921 "text": "Où puis-je gérer mes numéros virtuels ?", 

5922 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

5923 "is_deleted": False, 

5924 }, 

5925 "6": { 

5926 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

5927 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

5928 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

5929 "is_deleted": False, 

5930 }, 

5931 "7": { 

5932 "text_original": "supprimer un numéro de carte virtuel", 

5933 "text": "supprimer un numéro de carte virtuel", 

5934 "text_preprocessed": "supprimer un numero de carte virtuel", 

5935 "is_deleted": False, 

5936 }, 

5937 "8": { 

5938 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

5939 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

5940 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

5941 "is_deleted": False, 

5942 }, 

5943 "9": { 

5944 "text_original": "Je souhaite connaître le solde de mon compte.", 

5945 "text": "Je souhaite connaître le solde de mon compte.", 

5946 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

5947 "is_deleted": False, 

5948 }, 

5949 "10": { 

5950 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

5951 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

5952 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

5953 "is_deleted": False, 

5954 }, 

5955 "11": { 

5956 "text_original": "Je voudrai connaître le solde de mes comptes.", 

5957 "text": "Je voudrai connaître le solde de mes comptes.", 

5958 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

5959 "is_deleted": False, 

5960 }, 

5961 "12": { 

5962 "text_original": "Quel est le solde de mon compte courant ?", 

5963 "text": "Quel est le solde de mon compte courant ?", 

5964 "text_preprocessed": "quel est le solde de mon compte courant", 

5965 "is_deleted": False, 

5966 }, 

5967 "13": { 

5968 "text_original": "Quel est mon solde bancaire ?", 

5969 "text": "Quel est mon solde bancaire ?", 

5970 "text_preprocessed": "quel est mon solde bancaire", 

5971 "is_deleted": False, 

5972 }, 

5973 "14": { 

5974 "text_original": "solde de mon compte en banque", 

5975 "text": "solde de mon compte en banque", 

5976 "text_preprocessed": "solde de mon compte en banque", 

5977 "is_deleted": False, 

5978 }, 

5979 "15": { 

5980 "text_original": "Mon solde bancaire est-il toujours positif ?", 

5981 "text": "Mon solde bancaire est-il toujours positif ?", 

5982 "text_preprocessed": "mon solde bancaire est il toujours positif", 

5983 "is_deleted": False, 

5984 }, 

5985 "16": { 

5986 "text_original": "carte bancaire avalée", 

5987 "text": "carte bancaire avalée", 

5988 "text_preprocessed": "carte bancaire avalee", 

5989 "is_deleted": False, 

5990 }, 

5991 "17": { 

5992 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5993 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

5994 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

5995 "is_deleted": False, 

5996 }, 

5997 "18": { 

5998 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

5999 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

6000 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

6001 "is_deleted": False, 

6002 }, 

6003 "19": { 

6004 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

6005 "text": "Le distributeur a confisqué ma carte de paiement...", 

6006 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

6007 "is_deleted": False, 

6008 }, 

6009 "20": { 

6010 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

6011 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

6012 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

6013 "is_deleted": False, 

6014 }, 

6015 "21": { 

6016 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

6017 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

6018 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

6019 "is_deleted": False, 

6020 }, 

6021 "22": { 

6022 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

6023 "text": "Que faire si je me suis fait avaler ma carte ?", 

6024 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

6025 "is_deleted": False, 

6026 }, 

6027 "23": { 

6028 "text_original": "récupérer carte bleue avalée par distributeur", 

6029 "text": "récupérer carte bleue avalée par distributeur", 

6030 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

6031 "is_deleted": False, 

6032 }, 

6033 } 

6034 

6035 # Check modelization. 

6036 assert "constraints_manager.pkl" not in os.listdir( 

6037 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

6038 ) 

6039 assert "vectors_2D.json" not in os.listdir( 

6040 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

6041 ) 

6042 assert "vectors_3D.json" not in os.listdir( 

6043 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

6044 ) 

6045 with open( 

6046 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

6047 ) as modelization_before_fileobject: 

6048 assert json.load(modelization_before_fileobject) == { 

6049 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

6050 "1": {"MUST_LINK": ["1"], "CANNOT_LINK": [], "COMPONENT": 1}, 

6051 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

6052 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

6053 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": [], "COMPONENT": 4}, 

6054 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

6055 "6": {"MUST_LINK": ["6"], "CANNOT_LINK": [], "COMPONENT": 6}, 

6056 "7": {"MUST_LINK": ["7"], "CANNOT_LINK": [], "COMPONENT": 7}, 

6057 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 8}, 

6058 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 9}, 

6059 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 10}, 

6060 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 11}, 

6061 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 12}, 

6062 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 13}, 

6063 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 14}, 

6064 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 15}, 

6065 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 16}, 

6066 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 17}, 

6067 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 18}, 

6068 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 19}, 

6069 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 20}, 

6070 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 21}, 

6071 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 22}, 

6072 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 23}, 

6073 } 

6074 

6075 # Run the task. 

6076 fake_backgroundtasks.run_modelization_update_task( 

6077 project_id="import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION", 

6078 ) 

6079 

6080 # Assert status is updated. 

6081 with open( 

6082 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "status.json", "r" 

6083 ) as status_after_fileobject: 

6084 assert json.load(status_after_fileobject) == { 

6085 "iteration_id": 1, 

6086 "state": "IMPORT_AT_ITERATION_END_WITH_ERRORS", 

6087 "task": None, 

6088 } 

6089 

6090 # Assert texts is updated. 

6091 with open( 

6092 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "texts.json", "r" 

6093 ) as texts_after_fileobject: 

6094 assert json.load(texts_after_fileobject) == { 

6095 "0": { 

6096 "text_original": "créer un numéro virtuel", 

6097 "text": "créer un numéro virtuel", 

6098 "text_preprocessed": "creer un numero virtuel", 

6099 "is_deleted": False, 

6100 }, 

6101 "1": { 

6102 "text_original": "activer les numéros de carte virtuelle", 

6103 "text": "activer les numéros de carte virtuelle", 

6104 "text_preprocessed": "activer les numeros de carte virtuelle", 

6105 "is_deleted": False, 

6106 }, 

6107 "2": { 

6108 "text_original": "Comment utiliser un numéro de carte virtuelle ?", 

6109 "text": "Comment utiliser un numéro de carte virtuelle ?", 

6110 "text_preprocessed": "comment utiliser un numero de carte virtuelle", 

6111 "is_deleted": False, 

6112 }, 

6113 "3": { 

6114 "text_original": "débloquer le paiement avec carte virtuelle", 

6115 "text": "débloquer le paiement avec carte virtuelle", 

6116 "text_preprocessed": "debloquer le paiement avec carte virtuelle", 

6117 "is_deleted": False, 

6118 }, 

6119 "4": { 

6120 "text_original": "obtenir un numéro virtuel pour mes achats en ligne", 

6121 "text": "obtenir un numéro virtuel pour mes achats en ligne", 

6122 "text_preprocessed": "obtenir un numero virtuel pour mes achats en ligne", 

6123 "is_deleted": False, 

6124 }, 

6125 "5": { 

6126 "text_original": "Où puis-je gérer mes numéros virtuels ?", 

6127 "text": "Où puis-je gérer mes numéros virtuels ?", 

6128 "text_preprocessed": "ou puis je gerer mes numeros virtuels", 

6129 "is_deleted": False, 

6130 }, 

6131 "6": { 

6132 "text_original": "Que faire pour activer une carte bancaire virtuelle ?", 

6133 "text": "Que faire pour activer une carte bancaire virtuelle ?", 

6134 "text_preprocessed": "que faire pour activer une carte bancaire virtuelle", 

6135 "is_deleted": False, 

6136 }, 

6137 "7": { 

6138 "text_original": "supprimer un numéro de carte virtuel", 

6139 "text": "supprimer un numéro de carte virtuel", 

6140 "text_preprocessed": "supprimer un numero de carte virtuel", 

6141 "is_deleted": False, 

6142 }, 

6143 "8": { 

6144 "text_original": "Combien d'argent me reste-t-il sur mon compte ?", 

6145 "text": "Combien d'argent me reste-t-il sur mon compte ?", 

6146 "text_preprocessed": "combien d argent me reste t il sur mon compte", 

6147 "is_deleted": False, 

6148 }, 

6149 "9": { 

6150 "text_original": "Je souhaite connaître le solde de mon compte.", 

6151 "text": "Je souhaite connaître le solde de mon compte.", 

6152 "text_preprocessed": "je souhaite connaitre le solde de mon compte", 

6153 "is_deleted": False, 

6154 }, 

6155 "10": { 

6156 "text_original": "Le solde de mon compte en banque est-il dans le rouge ?", 

6157 "text": "Le solde de mon compte en banque est-il dans le rouge ?", 

6158 "text_preprocessed": "le solde de mon compte en banque est il dans le rouge", 

6159 "is_deleted": False, 

6160 }, 

6161 "11": { 

6162 "text_original": "Je voudrai connaître le solde de mes comptes.", 

6163 "text": "Je voudrai connaître le solde de mes comptes.", 

6164 "text_preprocessed": "je voudrai connaitre le solde de mes comptes", 

6165 "is_deleted": False, 

6166 }, 

6167 "12": { 

6168 "text_original": "Quel est le solde de mon compte courant ?", 

6169 "text": "Quel est le solde de mon compte courant ?", 

6170 "text_preprocessed": "quel est le solde de mon compte courant", 

6171 "is_deleted": False, 

6172 }, 

6173 "13": { 

6174 "text_original": "Quel est mon solde bancaire ?", 

6175 "text": "Quel est mon solde bancaire ?", 

6176 "text_preprocessed": "quel est mon solde bancaire", 

6177 "is_deleted": False, 

6178 }, 

6179 "14": { 

6180 "text_original": "solde de mon compte en banque", 

6181 "text": "solde de mon compte en banque", 

6182 "text_preprocessed": "solde de mon compte en banque", 

6183 "is_deleted": False, 

6184 }, 

6185 "15": { 

6186 "text_original": "Mon solde bancaire est-il toujours positif ?", 

6187 "text": "Mon solde bancaire est-il toujours positif ?", 

6188 "text_preprocessed": "mon solde bancaire est il toujours positif", 

6189 "is_deleted": False, 

6190 }, 

6191 "16": { 

6192 "text_original": "carte bancaire avalée", 

6193 "text": "carte bancaire avalée", 

6194 "text_preprocessed": "carte bancaire avalee", 

6195 "is_deleted": False, 

6196 }, 

6197 "17": { 

6198 "text_original": "Le distributeur ne m'a pas rendu ma carte bleue.", 

6199 "text": "Le distributeur ne m'a pas rendu ma carte bleue.", 

6200 "text_preprocessed": "le distributeur ne m a pas rendu ma carte bleue", 

6201 "is_deleted": False, 

6202 }, 

6203 "18": { 

6204 "text_original": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

6205 "text": "J'ai voulu retirer de l'argent, et le gab a gardé ma carte bancaire.", 

6206 "text_preprocessed": "j ai voulu retirer de l argent et le gab a garde ma carte bancaire", 

6207 "is_deleted": False, 

6208 }, 

6209 "19": { 

6210 "text_original": "Le distributeur a confisqué ma carte de paiement...", 

6211 "text": "Le distributeur a confisqué ma carte de paiement...", 

6212 "text_preprocessed": "le distributeur a confisque ma carte de paiement", 

6213 "is_deleted": False, 

6214 }, 

6215 "20": { 

6216 "text_original": "Le GAB a gardé ma carte de crédit, que faire ?", 

6217 "text": "Le GAB a gardé ma carte de crédit, que faire ?", 

6218 "text_preprocessed": "le gab a garde ma carte de credit que faire", 

6219 "is_deleted": False, 

6220 }, 

6221 "21": { 

6222 "text_original": "Pourquoi ma carte a-t-elle été avalée ?", 

6223 "text": "Pourquoi ma carte a-t-elle été avalée ?", 

6224 "text_preprocessed": "pourquoi ma carte a t elle ete avalee", 

6225 "is_deleted": False, 

6226 }, 

6227 "22": { 

6228 "text_original": "Que faire si je me suis fait avaler ma carte ?", 

6229 "text": "Que faire si je me suis fait avaler ma carte ?", 

6230 "text_preprocessed": "que faire si je me suis fait avaler ma carte", 

6231 "is_deleted": False, 

6232 }, 

6233 "23": { 

6234 "text_original": "récupérer carte bleue avalée par distributeur", 

6235 "text": "récupérer carte bleue avalée par distributeur", 

6236 "text_preprocessed": "recuperer carte bleue avalee par distributeur", 

6237 "is_deleted": False, 

6238 }, 

6239 } 

6240 

6241 # Assert modelization is updated. 

6242 assert "constraints_manager.pkl" in os.listdir( 

6243 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

6244 ) 

6245 assert "vectors_2D.json" in os.listdir( 

6246 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

6247 ) 

6248 assert "vectors_3D.json" in os.listdir( 

6249 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" 

6250 ) 

6251 with open( 

6252 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "modelization.json", "r" 

6253 ) as modelization_after_fileobject: 

6254 assert json.load(modelization_after_fileobject) == { 

6255 "0": {"MUST_LINK": ["0"], "CANNOT_LINK": [], "COMPONENT": 0}, 

6256 "1": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

6257 "2": {"MUST_LINK": ["2"], "CANNOT_LINK": [], "COMPONENT": 2}, 

6258 "3": {"MUST_LINK": ["3"], "CANNOT_LINK": [], "COMPONENT": 3}, 

6259 "4": {"MUST_LINK": ["4"], "CANNOT_LINK": ["7", "1", "6"], "COMPONENT": 4}, 

6260 "5": {"MUST_LINK": ["5"], "CANNOT_LINK": [], "COMPONENT": 5}, 

6261 "6": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

6262 "7": {"MUST_LINK": ["1", "6", "7"], "CANNOT_LINK": ["4"], "COMPONENT": 1}, 

6263 "8": {"MUST_LINK": ["8"], "CANNOT_LINK": [], "COMPONENT": 6}, 

6264 "9": {"MUST_LINK": ["9"], "CANNOT_LINK": [], "COMPONENT": 7}, 

6265 "10": {"MUST_LINK": ["10"], "CANNOT_LINK": [], "COMPONENT": 8}, 

6266 "11": {"MUST_LINK": ["11"], "CANNOT_LINK": [], "COMPONENT": 9}, 

6267 "12": {"MUST_LINK": ["12"], "CANNOT_LINK": [], "COMPONENT": 10}, 

6268 "13": {"MUST_LINK": ["13"], "CANNOT_LINK": [], "COMPONENT": 11}, 

6269 "14": {"MUST_LINK": ["14"], "CANNOT_LINK": [], "COMPONENT": 12}, 

6270 "15": {"MUST_LINK": ["15"], "CANNOT_LINK": [], "COMPONENT": 13}, 

6271 "16": {"MUST_LINK": ["16"], "CANNOT_LINK": [], "COMPONENT": 14}, 

6272 "17": {"MUST_LINK": ["17"], "CANNOT_LINK": [], "COMPONENT": 15}, 

6273 "18": {"MUST_LINK": ["18"], "CANNOT_LINK": [], "COMPONENT": 16}, 

6274 "19": {"MUST_LINK": ["19"], "CANNOT_LINK": [], "COMPONENT": 17}, 

6275 "20": {"MUST_LINK": ["20"], "CANNOT_LINK": [], "COMPONENT": 18}, 

6276 "21": {"MUST_LINK": ["21"], "CANNOT_LINK": [], "COMPONENT": 19}, 

6277 "22": {"MUST_LINK": ["22"], "CANNOT_LINK": [], "COMPONENT": 20}, 

6278 "23": {"MUST_LINK": ["23"], "CANNOT_LINK": [], "COMPONENT": 21}, 

6279 } 

6280 with open( 

6281 tmp_path / "import_error_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION" / "constraints.json", "r" 

6282 ) as constraints_after_fileobject: 

6283 assert json.load(constraints_after_fileobject) == { 

6284 "(4,7)": { 

6285 "data": {"id_1": "4", "id_2": "7"}, 

6286 "constraint_type": "CANNOT_LINK", 

6287 "constraint_type_previous": [None, "MUST_LINK"], 

6288 "is_hidden": False, 

6289 "to_annotate": False, 

6290 "to_review": True, 

6291 "to_fix_conflict": False, 

6292 "comment": "", 

6293 "date_of_update": 1657545553.46324, 

6294 "iteration_of_sampling": 0, 

6295 }, 

6296 "(1,6)": { 

6297 "data": {"id_1": "1", "id_2": "6"}, 

6298 "constraint_type": "MUST_LINK", 

6299 "constraint_type_previous": [None], 

6300 "is_hidden": False, 

6301 "to_annotate": False, 

6302 "to_review": True, 

6303 "to_fix_conflict": False, 

6304 "comment": "", 

6305 "date_of_update": 1657543490.330898, 

6306 "iteration_of_sampling": 0, 

6307 }, 

6308 "(1,7)": { 

6309 "data": {"id_1": "1", "id_2": "7"}, 

6310 "constraint_type": "MUST_LINK", 

6311 "constraint_type_previous": [None], 

6312 "is_hidden": False, 

6313 "to_annotate": False, 

6314 "to_review": True, 

6315 "to_fix_conflict": False, 

6316 "comment": "", 

6317 "date_of_update": 1657543507.347849, 

6318 "iteration_of_sampling": 0, 

6319 }, 

6320 "(4,6)": { 

6321 "data": {"id_1": "4", "id_2": "6"}, 

6322 "constraint_type": "MUST_LINK", 

6323 "constraint_type_previous": [None], 

6324 "is_hidden": False, 

6325 "to_annotate": False, 

6326 "to_review": True, 

6327 "to_fix_conflict": True, 

6328 "comment": "", 

6329 "date_of_update": 1657545344.703469, 

6330 "iteration_of_sampling": 0, 

6331 }, 

6332 }