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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user