test(gui): vérifier chaque branche de classify_error_code + anti-dérive (E2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-30 10:34:11 +02:00
parent 952a1c6ca0
commit 4412512d4b
2 changed files with 30 additions and 0 deletions

View File

@@ -303,3 +303,28 @@ def test_success_doc_has_no_error_fields(tmp_path):
doc = summary.documents[0]
assert doc.status == "success"
assert doc.error_type is None and doc.error_code is None
# -- classification d'erreur : une assertion par branche (mapping vérifié) -
def test_classify_error_code_ner_unavailable():
from gui_v6.processing_runner import classify_error_code
from gui_v6.engine_bridge import EngineUnavailableError # import the REAL class
# importing the real class means a future rename breaks this test (intended guard)
assert classify_error_code(EngineUnavailableError("modèle indispo")) == "ner_unavailable"
def test_classify_error_code_quarantined():
from gui_v6.processing_runner import classify_error_code
assert classify_error_code(RuntimeError("Document mis en quarantaine : texte trop court")) == "quarantined"
def test_classify_error_code_no_output():
from gui_v6.processing_runner import classify_error_code
assert classify_error_code(RuntimeError("Aucune sortie PDF anonymisée produite")) == "no_output"
def test_classify_error_code_processing_error_default():
from gui_v6.processing_runner import classify_error_code, _ERROR_CODES
assert classify_error_code(ValueError("patient Dupont")) == "processing_error"
assert classify_error_code(ValueError("x")) in _ERROR_CODES