"""Garde-fou : l'onglet Configuration doit couvrir les sections de la maquette V6.""" from __future__ import annotations import pytest pytest.importorskip("customtkinter") from gui_v6.tabs.tab_config import ( CONFIG_INTERACTION_CONTRACT, CONFIG_MOCKUP_SECTIONS, MINI_TOGGLE_HEIGHT, MINI_TOGGLE_HINT_FONT_SIZE, MINI_TOGGLE_LABEL_FONT_SIZE, _DETECTION_OPTIONS, ) def test_config_mockup_sections_cover_admin_surface(): assert CONFIG_MOCKUP_SECTIONS == { "reglages": [ "Profil d'anonymisation", "Moteurs NER", "Données à détecter", "Termes à toujours conserver", "Termes à toujours masquer", "Masque manuel obligatoire", "Template de masque manuel", ], "masquage": [ "Couleur de masquage (PDF)", "Style des marqueurs (texte)", "Épaisseur du masque", "Codes de remplacement", "Masques de zones fixes", "Éditeur interactif de masques", ], "partage": ["Exporter la configuration", "Importer une configuration"], "regles": ["Règles actives", "Testeur de règle"], } def test_config_interaction_contract_prebuilds_panels_and_mask_editor(): assert CONFIG_INTERACTION_CONTRACT["subtabs"] == "prebuilt_panels" assert CONFIG_INTERACTION_CONTRACT["reglages_columns"] == 3 assert CONFIG_INTERACTION_CONTRACT["mask_editor"] == [ "open_pdf", "draw_rectangle", "delete_rectangle_on_click", "zoom", "save_template_json", "load_template_json_or_yaml", "clear_page", "apply_template_selection", ] def test_detection_rows_are_readable_in_light_theme(): """Retour Dom : les sous-labels de la colonne détection doivent rester lisibles.""" assert ("Noms et prénoms", "Annuaire + IA") in _DETECTION_OPTIONS assert ("Noms et prénoms", "Bases de données + IA") not in _DETECTION_OPTIONS assert MINI_TOGGLE_HEIGHT >= 44 assert MINI_TOGGLE_LABEL_FONT_SIZE >= 12 assert MINI_TOGGLE_HINT_FONT_SIZE >= 11