"""D4 (loi 09-08) : rien d'identifiant ne doit survivre à l'ingestion.""" from siop_ai.anonymisation import JETON_CONTACT, JETON_PERSONNE, anonymiser def test_emails_et_telephones_marocains(): texte = "Appeler M. Alami au 06 12 34 56 78 ou +212 5 22 34 56 78, sinon gardien@residence.ma" resultat = anonymiser(texte, ["M. Alami"]) assert "06 12" not in resultat assert "+212" not in resultat assert "gardien@residence.ma" not in resultat assert resultat.count(JETON_CONTACT) == 3 def test_noms_connus_meme_sans_accents_ni_casse(): texte = "Intervention validée par salma idrissi puis contrôlée par AHMED BENALI." resultat = anonymiser(texte, ["Salma Idrissi", "Ahmed Benali"]) assert "idrissi" not in resultat.lower() assert "benali" not in resultat.lower() assert resultat.count(JETON_PERSONNE) == 2 def test_prenom_seul_est_attrape_mais_pas_les_mots_courts(): resultat = anonymiser("Vu avec Ahmed sur site.", ["Ahmed Benali"]) assert "Ahmed" not in resultat # « NC-31 » ou « vis » ne doivent jamais être mutilés par un nom court resultat2 = anonymiser("Contact NC-31 réglé, vis serrées.", ["N. C."]) assert "NC-31" in resultat2 def test_le_texte_technique_reste_intact(): texte = "Serrer les coulisseaux au couple de 25 N·m ; jeu latéral 0,5 mm." assert anonymiser(texte, ["Salma Idrissi"]) == texte