erplibre/test
Mathieu Benoit aa14942709 [ADD] vpn : parcourir les profils AnyConnect au lieu de taper le chemin
Personne ne retient « /opt/cisco/secureclient/vpn/profile ». Le chemin
tapé oblige à le connaître ; le parcours seul n'aide pas quand le fichier
vient d'ailleurs, d'un courriel ou du portail d'un site. Les deux, dans
cet ordre, et la saisie reprend la main dès qu'on sort du parcours sans
rien choisir ou qu'on en rapporte un répertoire.

Le parcours n'est proposé que si l'un des répertoires connus existe :
l'ouvrir sur un chemin absent afficherait une liste vide, ce qui ressemble
à une panne. Vérifié : 7 tests unitaires, dont chacun des replis.

--- EN ---

Nobody remembers "/opt/cisco/secureclient/vpn/profile". A typed path
requires knowing it; browsing alone does not help when the file comes
from elsewhere, from an e-mail or a site's portal. Both, in that order,
and typing takes over as soon as one leaves the browser without choosing
anything, or brings back a directory from it.

Browsing is offered only if one of the known directories exists: opening
it on an absent path would show an empty list, which looks like a fault.
Checked: 7 unit tests, one for each fallback.

Assisted-by: Claude Opus 5
2026-09-07 22:19:22 -04:00
..
code_generator [FIX] make test with coverage: missing coverage parameter 2023-03-04 23:34:37 -05:00
mail_sandbox.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_analyse_custom_field.py [ADD] analyse: inspect an Odoo database without restoring it 2026-08-10 03:10:50 -04:00
test_analyse_lib.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_analyse_schema_size.py [ADD] analyse: inspect an Odoo database without restoring it 2026-08-10 03:10:50 -04:00
test_analyse_view_custom.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_anonymize.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_auto_execute.py [ADD] migration: make Enter mean the answer you always give 2026-08-22 07:23:59 -04:00
test_check_addons_exist.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_check_chart_drift.py [ADD] migration : mesurer la dérive du plan comptable entre paliers 2026-08-29 02:11:04 -04:00
test_check_comment_hygiene.py [ADD] commentaires : un relevé non bloquant, sa règle, le code nettoyé 2026-08-30 06:08:30 -04:00
test_check_cow_views_render.py [ADD] migration: prédire la copie de site qui rendra 500 après le palier 2026-08-25 03:19:18 -04:00
test_check_filestore.py [ADD] filestore: purge once at the end, tidy at the restore, see the 30 MB 2026-08-23 02:09:59 -04:00
test_check_hidden_models.py [FIX] migration: la sonde de visibilité déclare ce qu'elle n'a pas prouvé 2026-08-25 03:28:39 -04:00
test_check_instance_state.py [ADD] analyse: l'état d'une instance, lu pour l'usage qu'on en fait 2026-08-25 03:28:39 -04:00
test_check_manifest_gaps.py [ADD] manifestes : détecter un dépôt absent d'un palier de migration 2026-08-29 02:11:04 -04:00
test_check_migration_quality.py [FIX] verdicts de migration : distinguer trouvaille et échec d'outil 2026-08-29 02:11:04 -04:00
test_check_module_dependency.py [ADD] analyse: i, u et t — installés, en cours, applications 2026-08-23 04:03:18 -04:00
test_check_module_package.py [ADD] analyse: offer to install the suggested modules that are ready 2026-08-23 02:09:59 -04:00
test_check_stale_scss.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_check_view_type_tree.py [ADD] migration : détecter le type de vue tree resté dans les sources 2026-08-29 02:11:04 -04:00
test_code_generator_tools.py [REF] tests : passer isort et black sur trois fichiers oubliés 2026-09-04 03:42:34 +00:00
test_config_file.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_database_cleanup.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_database_tools.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_db_duplicate.py [ADD] commentaires : un relevé non bloquant, sa règle, le code nettoyé 2026-08-30 06:08:30 -04:00
test_deep_qemu.py [FIX] long_test : bail attendu, rallumage à froid, marge mémoire 2026-08-29 01:53:03 -04:00
test_deploy_form_help.py [IMP] qemu deploy : pré-configurer la VM, et dire ce qui s'y installe 2026-09-04 02:03:52 -04:00
test_dms_access_repair.py [ADD] migration: repair DMS at the 13 bump, and catch the whole class 2026-08-22 07:24:00 -04:00
test_docker_update_version.py [REF] tests : passer isort et black sur trois fichiers oubliés 2026-09-04 03:42:34 +00:00
test_error_retry_loop.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_execute.py [FIX] todo: test menu, file browser and KeePass refusals 2026-08-16 03:56:34 -04:00
test_fix_account_root.py [FIX] migration 17→18 : retirer la vue morte account_root 2026-08-29 02:11:04 -04:00
test_fix_cow_render.py [ADD] migration: prédire la copie de site qui rendra 500 après le palier 2026-08-25 03:19:18 -04:00
test_fix_duplicate_index.py [ADD] migration: retirer les index qu'Odoo 17 a créés en double 2026-08-25 03:19:18 -04:00
test_fix_migration_120_to_130.py [ADD] migration: decode percent-encoded page anchors before the 13 bump 2026-08-23 02:20:19 -04:00
test_fix_view_type.py [ADD] migration: convert the <tree> tags Odoo 18 renamed to <list> 2026-08-22 07:24:00 -04:00
test_format_file_to_commit.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_git_change_remote.py [FIX] git remote : ignorer un dépôt fautif, lister les écarts à la fin 2026-09-04 03:48:39 +00:00
test_git_commit_msg.py [I18N] commit-msg : le garde-fou parle la langue du dépôt 2026-08-31 00:50:31 -04:00
test_git_tool.py [FIX] git tool : garder le dépôt racine quand le manifeste manque 2026-09-04 03:48:32 +00:00
test_install_swig_compat.py [FIX] install : compiler pykcs11 avec SWIG 4.3 et au-delà 2026-08-23 02:11:50 -04:00
test_iscompatible.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_kdbx_manager.py [FIX] kdbx : nommer le coffre avant que getpass ne pose sa question 2026-09-04 03:42:18 +00:00
test_kill_process_by_port.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
test_mail_account_setup.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_accounts.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_charset.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_compose.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_crypto.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_imap_transport.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_mail_live_server.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_menu.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_secrets.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_send.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_store.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_sync.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_account.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_help.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_layout.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_log.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_refresh.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_resize.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_splitter.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_mail_tui_text.py [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
test_master_password_retry.py [FIX] db_restore: la sonde du mot de passe maître ne validait rien 2026-08-25 03:19:18 -04:00
test_migration_form_back.py [ADD] migration: offer « go back to a step » on the resume screen 2026-08-22 07:23:59 -04:00
test_migration_status.py [FIX] verdicts de migration : distinguer trouvaille et échec d'outil 2026-08-29 02:11:04 -04:00
test_migration_tools_i18n.py [ADD] migration: prédire la copie de site qui rendra 500 après le palier 2026-08-25 03:19:18 -04:00
test_mobile_bundle_transfer.py [FIX] mobile: the bundle check refused a real build 2026-08-25 03:28:39 -04:00
test_monitoring.py [ADD] commentaires : un relevé non bloquant, sa règle, le code nettoyé 2026-08-30 06:08:30 -04:00
test_odoo_rc.py [FIX] odoo_bin : lire le config.conf du dépôt, pas le ~/.odoorc 2026-08-29 02:11:04 -04:00
test_old_python_annotations.py [FIX] script: différer les annotations, la 12 tourne en Python 3.7 2026-08-23 03:13:58 -04:00
test_openupgrade_analysis.py [ADD] migration quality: lay OpenUpgrade's declared changes over the real ones 2026-08-22 07:24:00 -04:00
test_plan.base.md [ADD] test: add bilingual test plan with mmg 2026-03-11 23:07:01 -04:00
test_plan.fr.md [ADD] test: add bilingual test plan with mmg 2026-03-11 23:07:01 -04:00
test_plan.md [ADD] test: add bilingual test plan with mmg 2026-03-11 23:07:01 -04:00
test_prompt_defaults.py [ADD] commentaires : un relevé non bloquant, sa règle, le code nettoyé 2026-08-30 06:08:30 -04:00
test_proxmox_deploy.py [FIX] proxmox : apt-daily tient le verrou au démarrage 2026-08-29 01:53:03 -04:00
test_proxmox_form.py [FIX] LongTest : ne pas détruire sous une descente vivante ; blocs ssh 2026-08-29 01:53:03 -04:00
test_proxmox_nesting.py [FIX] imbrication : le coût d'un vCPU dépend de la profondeur de l'étage 2026-08-29 01:53:03 -04:00
test_qemu_ai_tools.py [IMP] qemu deploy : pré-configurer la VM, et dire ce qui s'y installe 2026-09-04 02:03:52 -04:00
test_qemu_arch_yay.py [ADD] qemu arch : yay et bash-completion sur l'invité, guide au MOTD 2026-09-02 08:04:05 -04:00
test_qemu_cleanup.py [FIX] nettoyage : les enfants s'en vont avec leur rebond 2026-08-25 03:31:12 -04:00
test_qemu_deploy_failure_output.py [FIX] qemu deploy : montrer le message de l'outil quand une VM échoue 2026-09-03 05:00:55 -04:00
test_qemu_deploy_form_disk.py [FIX] test : ne pas dépendre de la langue de l'interface 2026-08-25 03:19:18 -04:00
test_qemu_deploy_form_install.py [REF] déploiement : un seul socle pour ce qui décrit le système invité 2026-08-25 03:28:39 -04:00
test_qemu_deploy_monitor.py [FIX] proxmox : l'installation partait sur la mauvaise machine 2026-08-25 03:28:39 -04:00
test_qemu_desktop_tools.py [ADD] qemu deploy : poser rtk, starship et un agent dans la VM 2026-09-03 05:00:55 -04:00
test_qemu_egl_fallback.py [ADD] qemu deploy : case 3D à la création, même sans écran virtuel 2026-09-03 05:00:55 -04:00
test_qemu_emulator_menu.py [FIX] test : ne pas dépendre de la langue de l'interface 2026-08-25 03:19:18 -04:00
test_qemu_forgejo.py [ADD] script todo: ouvrir l'écran d'une VM avec virt-viewer 2026-08-23 02:07:42 -04:00
test_qemu_gpu.py [FIX] qemu menu : passer par le groupe libvirt plutôt que par sudo 2026-09-03 05:00:55 -04:00
test_qemu_gpu_option.py [ADD] qemu deploy : poser rtk, starship et un agent dans la VM 2026-09-03 05:00:55 -04:00
test_qemu_host_network.py [FIX] qemu réseau : ne plus compter le pont d'un réseau contre lui-même 2026-09-04 03:31:08 -04:00
test_qemu_install_profile.py [FIX] qemu : ne pas poser ERPLibre sur une VM Proxmox VE 2026-08-25 03:17:13 -04:00
test_qemu_install_summary.py [FIX] script todo: résumer les erreurs au lieu de chercher « error » 2026-08-23 02:07:42 -04:00
test_qemu_monitor_pve.py [FIX] qemu menu : nommer l'URI libvirt, sinon la liste des VM est vide 2026-09-03 05:00:55 -04:00
test_qemu_monitor_telemetry.py [ADD] script todo: dire depuis quand un journal d'installation est muet 2026-08-23 02:07:42 -04:00
test_qemu_monitor_vmstats.py [ADD] suivi : les statistiques de chaque VM (écriture, RAM, disque) 2026-08-23 02:20:10 -04:00
test_qemu_motd.py [ADD] qemu guide: dire comment démarrer le bureau, sur les VM qui en ont un 2026-08-23 02:07:42 -04:00
test_qemu_network_recreate.py [ADD] qemu réseau : voir et recréer le sous-réseau des VM 2026-09-04 03:31:22 -04:00
test_qemu_orphan_disk.py [ADD] qemu deploy : proposer d'effacer un disque orphelin qui bloque 2026-09-03 05:00:55 -04:00
test_qemu_privilege.py [FIX] qemu menu : sortir le venv du PATH des outils système 2026-09-03 05:00:55 -04:00
test_qemu_proxmox.py [ADD] qemu : déployer Proxmox VE (amd64, arm64) 2026-08-23 03:28:03 -04:00
test_qemu_recover.py [ADD] qemu diagnostic : un relevé à transmettre, Gérer scindé en trois 2026-09-03 05:00:55 -04:00
test_qemu_setup_host_reboot.py [FIX] qemu setup-host : demander avant de redémarrer l'hôte 2026-09-02 07:38:11 -04:00
test_qemu_shrink_tools.py [FIX] qemu shrink : place mesurée avant sauvegarde, étape annoncée 2026-08-31 07:51:19 -04:00
test_qemu_start_egl.py [FIX] tests qemu : deux gardes rendus muets par mes propres ajouts 2026-09-03 05:00:55 -04:00
test_qemu_sudo_reason.py [IMP] qemu deploy : constater le motif du sudo, le dire avant l'invite 2026-09-04 02:27:51 -04:00
test_qemu_tunnel_menu.py [ADD] script todo : installer les outils manquants, les quatre familles 2026-08-31 07:18:13 -04:00
test_qemu_vm_name.py [UPD] qemu manage : nom de VM sans la version d'une publication continue 2026-09-02 04:13:48 -04:00
test_qemu_vm_table.py [IMP] script todo: RAM utilisée et uptime dans les infos avancées d'une VM 2026-08-23 02:07:42 -04:00
test_reset_stale_cow_prompt.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_reset_stale_cow_tui.py [ADD] migration: repair views whose stored type contradicts their parent 2026-08-22 07:24:00 -04:00
test_restore_config_defaults.py [ADD] migration: recréer les réglages qu'aucun événement ne remet 2026-08-25 03:19:18 -04:00
test_run_sh_auto_db.py [ADD] run: choisir la base au démarrage, sans jamais bloquer 2026-08-23 17:26:41 -04:00
test_script_permissions.py [FIX] test: check the exec bit git stores, not the mode umask decides 2026-08-22 07:23:59 -04:00
test_smoke_final_url.py [FIX] smoke: two sites still unpacked three fields from the failure tuple 2026-08-23 02:07:42 -04:00
test_smoke_internal_ui.py [FIX] smoke: judge the back office AFTER the repair, and say why it failed 2026-08-22 07:23:59 -04:00
test_smoke_public_url.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_suite_reaches_every_file.py [FIX] tests : balayer test/test_*.py et refuser un fichier muet 2026-08-29 02:11:04 -04:00
test_target_version_default.py [ADD] migration: an auto-run that takes the default after five seconds 2026-08-22 07:23:59 -04:00
test_theme_on_error.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_todo.py [ADD] script todo : /todo_generate_code, effort high et règles du dépôt 2026-09-02 07:16:23 -04:00
test_todo_deploy_form_lib.py [FIX] deploy : la branche du dépôt, et la sortie pendant qu'elle arrive 2026-08-25 03:19:18 -04:00
test_todo_deploy_form_parity.py [IMP] qemu deploy : pré-configurer la VM, et dire ce qui s'y installe 2026-09-04 02:03:52 -04:00
test_todo_deploy_progress.py [FIX] proxmox : viser la bonne machine, et dire la vérité sur le disque 2026-08-25 03:28:39 -04:00
test_todo_file_browser.py [FIX] todo: test menu, file browser and KeePass refusals 2026-08-16 03:56:34 -04:00
test_todo_i18n.py [FIX] todo: test menu, file browser and KeePass refusals 2026-08-16 03:56:34 -04:00
test_todo_install.py [ADD] script todo : installer les outils manquants, les quatre familles 2026-08-31 07:18:13 -04:00
test_todo_longtest.py [FIX] long_test : bail attendu, rallumage à froid, marge mémoire 2026-08-29 01:53:03 -04:00
test_todo_menu.py [ADD] qemu réseau : voir et recréer le sous-réseau des VM 2026-09-04 03:31:22 -04:00
test_todo_rtk.py [FIX] script todo : rtk hors du PATH, résultat d'installation annoncé 2026-09-02 03:53:40 -04:00
test_todo_shell_tools.py [ADD] script todo : installer Claude Code et opencode, PATH garanti 2026-09-02 04:51:03 -04:00
test_todo_sshfs.py [ADD] commentaires : un relevé non bloquant, sa règle, le code nettoyé 2026-08-30 06:08:30 -04:00
test_todo_upgrade_archive.py [ADD] migration: keep the previous log when a run restarts 2026-08-17 01:25:23 -04:00
test_todo_upgrade_capture.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_todo_upgrade_cow_prompt.py [ADD] migration: make Enter mean the answer you always give 2026-08-22 07:23:59 -04:00
test_todo_upgrade_repairs.py [ADD] migration: brancher les deux réparations qui ne tournaient jamais 2026-08-25 03:28:39 -04:00
test_todo_upgrade_steps.py [ADD] migration: offer « go back to a step » on the resume screen 2026-08-22 07:23:59 -04:00
test_tooling_requirements.py [FIX] suite unitaire : bit d'exécution, script/*.py balayé, clé i18n 2026-08-31 00:03:50 -04:00
test_uninstall_addons_theme.py [ADD] migration : garder la sortie des tests, par pseudo-terminal 2026-08-29 02:11:04 -04:00
test_uninstall_module_list.py [FIX] migration: un clone refait rejoue la liste de son palier 2026-08-23 04:35:58 -04:00
test_uninstall_verified.py [FIX] migration: un module fautif n'emporte plus tout le lot 2026-08-25 03:19:18 -04:00
test_version.py [REF] tests : passer isort et black sur trois fichiers oubliés 2026-09-04 03:42:34 +00:00
test_vpn_anyconnect_xml.py [ADD] vpn : préréglages de site, importés d'un profil AnyConnect 2026-09-04 06:26:34 -04:00
test_vpn_drivers.py [ADD] vpn openconnect : groupe d'URL, SSO délégué, mot de passe borné 2026-09-04 06:26:34 -04:00
test_vpn_menu.py [ADD] vpn : parcourir les profils AnyConnect au lieu de taper le chemin 2026-09-07 22:19:22 -04:00
test_vpn_presets.py [ADD] vpn openconnect : groupe d'URL, SSO délégué, mot de passe borné 2026-09-04 06:26:34 -04:00
test_vpn_profiles.py [ADD] vpn : cinq pilotes, secrets en coffre, diagnostic étagé 2026-09-04 03:42:49 +00:00
test_vpn_render.py [ADD] vpn install : proposer et poser le greffon SSO 2026-09-07 22:19:22 -04:00
test_vpn_vault.py [ADD] vpn : cinq pilotes, secrets en coffre, diagnostic étagé 2026-09-04 03:42:49 +00:00
test_warmup_http.py [ADD] run : précharger le registre Odoo au lancement, sans nuire 2026-08-29 02:11:04 -04:00