diff --git a/installer/Anonymisation.iss b/installer/Anonymisation.iss index 3f8b799..e211813 100644 --- a/installer/Anonymisation.iss +++ b/installer/Anonymisation.iss @@ -24,6 +24,11 @@ SolidCompression=yes WizardStyle=modern ArchitecturesAllowed=x64compatible ArchitecturesInstallIn64BitMode=x64compatible +; D8 (Plan 3) : MAJ propre — ferme l'app avant remplacement de l'EXE. +; AppMutex = gui_v6/single_instance.py:APP_MUTEX_NAME (NE PAS désynchroniser). +AppMutex=AivanonymAnonymisationV6 +CloseApplications=yes +RestartApplications=no [Languages] Name: "french"; MessagesFile: "compiler:Languages\French.isl" diff --git a/tests/unit/test_installer_iss_d8.py b/tests/unit/test_installer_iss_d8.py new file mode 100644 index 0000000..8fc7d4b --- /dev/null +++ b/tests/unit/test_installer_iss_d8.py @@ -0,0 +1,27 @@ +"""Anti-dérive D8 (Plan 3) : l'installeur GUI doit fermer l'app avant MAJ. + +AppMutex DOIT valoir gui_v6.single_instance.APP_MUTEX_NAME (P0-7) — le commentaire +de single_instance.py:15 exige la synchro. CloseApplications ferme l'app qui +verrouille l'EXE pendant l'upgrade en place (AppId fixe). +""" +from pathlib import Path + +from gui_v6.single_instance import APP_MUTEX_NAME + +ISS = Path(__file__).resolve().parents[2] / "installer" / "Anonymisation.iss" + + +def test_appmutex_synchronise_avec_single_instance(): + text = ISS.read_text(encoding="utf-8") + assert f"AppMutex={APP_MUTEX_NAME}" in text + + +def test_closeapplications_actif(): + text = ISS.read_text(encoding="utf-8") + assert "CloseApplications=yes" in text + + +def test_appid_fixe_inchange(): + # L'upgrade en place repose sur l'AppId stable — ne jamais le régénérer. + text = ISS.read_text(encoding="utf-8") + assert "AppId={{6D11E4F8-26D8-4CFB-9F19-5A81E0637F56}" in text