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
« prev ^ index » next coverage.py v7.4.3, created at 2024-03-22 23:23 +0100
1# -*- coding: utf-8 -*-
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"""
11# ==============================================================================
12# IMPORT PYTHON DEPENDENCIES
13# ==============================================================================
15import json
16import os
18from tests.dummies_utils import create_dummy_projects
20# ==============================================================================
21# test_ko_not_found
22# ==============================================================================
25def test_ko_not_found(fake_backgroundtasks):
26 """
27 Test the `modelization update` task with project not existing.
29 Args:
30 fake_backgroundtasks: Fixture providing a backgroundtasks module, declared in `conftest.py`.
31 """
33 # Run the task.
34 fake_backgroundtasks.run_modelization_update_task(
35 project_id="UNKNOWN_PROJECT",
36 )
39# ==============================================================================
40# test_ko_bad_state
41# ==============================================================================
44def test_ko_bad_state(fake_backgroundtasks, tmp_path):
45 """
46 Test the `modelization update` task with bad state.
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 """
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 )
61 # Run the task.
62 fake_backgroundtasks.run_modelization_update_task(
63 project_id="1a_SAMPLING_TODO",
64 )
67# ==============================================================================
68# test_ok_1a
69# ==============================================================================
72def test_ok_1a(fake_backgroundtasks, tmp_path):
73 """
74 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
272 # Run the task.
273 fake_backgroundtasks.run_modelization_update_task(
274 project_id="0b_INITIALIZATION_WITH_PENDING_MODELIZATION",
275 )
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}
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 }
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 }
465# ==============================================================================
466# test_ok_1b
467# ==============================================================================
470def test_ok_1b(fake_backgroundtasks, tmp_path):
471 """
472 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
672 # Run the task.
673 fake_backgroundtasks.run_modelization_update_task(
674 project_id="import_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION",
675 )
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}
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 }
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 }
869# ==============================================================================
870# test_ok_2
871# ==============================================================================
874def test_ok_2(fake_backgroundtasks, tmp_path):
875 """
876 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
1082 # Run the task.
1083 fake_backgroundtasks.run_modelization_update_task(
1084 project_id="import_1w1_IMPORT_AT_SAMPLING_STEP_WITH_PENDING_MODELIZATION",
1085 )
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}
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 }
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 }
1281# ==============================================================================
1282# test_ok_3
1283# ==============================================================================
1286def test_ok_3(fake_backgroundtasks, tmp_path):
1287 """
1288 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
1566 # Run the task.
1567 fake_backgroundtasks.run_modelization_update_task(
1568 project_id="import_1x1_IMPORT_AT_ANNOTATION_STEP_WITH_PENDING_MODELIZATION",
1569 )
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 }
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 }
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 }
1841# ==============================================================================
1842# test_ok_4
1843# ==============================================================================
1846def test_ok_4(fake_backgroundtasks, tmp_path):
1847 """
1848 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
2126 # Run the task.
2127 fake_backgroundtasks.run_modelization_update_task(
2128 project_id="import_1y1_IMPORT_AT_CLUSTERING_STEP_WITH_PENDING_MODELIZATION",
2129 )
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}
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 }
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 }
2397# ==============================================================================
2398# test_ok_5
2399# ==============================================================================
2402def test_ok_5(fake_backgroundtasks, tmp_path):
2403 """
2404 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
2682 # Run the task.
2683 fake_backgroundtasks.run_modelization_update_task(
2684 project_id="import_1z1_IMPORT_AT_ITERATION_END_WITH_PENDING_MODELIZATION",
2685 )
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}
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 }
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 }
2953# ==============================================================================
2954# test_ok_6
2955# ==============================================================================
2958def test_ok_6(fake_backgroundtasks, tmp_path):
2959 """
2960 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
3162 # Run the task.
3163 fake_backgroundtasks.run_modelization_update_task(
3164 project_id="1f_ANNOTATION_WITH_PENDING_MODELIZATION_WITHOUT_CONFLICTS",
3165 )
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 }
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 }
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 }
3432# ==============================================================================
3433# test_ok_7
3434# ==============================================================================
3437def test_ok_7(fake_backgroundtasks, tmp_path):
3438 """
3439 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
3706 # Run the task.
3707 fake_backgroundtasks.run_modelization_update_task(
3708 project_id="1j_ANNOTATION_WITH_PENDING_MODELIZATION_WITH_CONFLICTS",
3709 )
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 }
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 }
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 }
3978# ==============================================================================
3979# test_ok_erreur_1
3980# ==============================================================================
3983def test_ok_erreur_1(fake_backgroundtasks, tmp_path):
3984 """
3985 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
4187 # Run the task.
4188 fake_backgroundtasks.run_modelization_update_task(
4189 project_id="import_error_0y1_INITIALIZATION_WITH_PENDING_MODELIZATION",
4190 )
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 }
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 }
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 }
4443# ==============================================================================
4444# test_ok_erreur_2
4445# ==============================================================================
4448def test_ok_erreur_2(fake_backgroundtasks, tmp_path):
4449 """
4450 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
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 )
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 }
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 }
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 }
4916# ==============================================================================
4917# test_ok_erreur_3
4918# ==============================================================================
4921def test_ok_erreur_3(fake_backgroundtasks, tmp_path):
4922 """
4923 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
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 )
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 }
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 }
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 }
5389# ==============================================================================
5390# test_ok_erreur_4
5391# ==============================================================================
5394def test_ok_erreur_4(fake_backgroundtasks, tmp_path):
5395 """
5396 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
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 )
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 }
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 }
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 }
5862# ==============================================================================
5863# test_ok_erreur_5
5864# ==============================================================================
5867def test_ok_erreur_5(fake_backgroundtasks, tmp_path):
5868 """
5869 Test the `modelization update` task works.
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 """
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 )
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 }
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 }
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 )
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 }
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 }
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 }