Set-OPS-Public/scripts/tests
Daniel Allaire 4188cf5b6f la console mesure le pouvoir sur la voute, pas sur la carte
Le document des responsabilites attache chaque pouvoir a une voute : calculer n'en demande
aucune, configurer demande celle du tenant, materialiser celle du site. Le code lisait les
symlinks, c'est-a-dire les cartes. Le runner de Chezlepro-locataire montait la carte du
site sans en avoir jamais eu la voute : sa console se declarait poste et offrait 126 etapes
sur 126. Ces gestes seraient partis puis tombes sur un secret vide — un echec au milieu du
chemin, la ou un refus net aurait dit la verite avant de commencer.

contexte() derive desormais les pouvoirs des voutes presentes, et la portee decoule des
pouvoirs au lieu de les preceder. On ne prouve pas qu'une voute s'ouvre, le mot de passe se
tape a l'execution ; mais son absence est decisive et se mesure sans rien ouvrir. Lire une
carte reste permis : le pouvoir fabric suit toujours le symlink, consulter un miroir n'est
pas engendrer.

serveur_ops retire aussi le lien quand la fabric n'est plus declaree — il ne retirait rien,
et un runner gardait le pouvoir que son plan ne lui donnait plus. Il ne retire qu'un lien,
jamais un fichier : une vraie carte a cette place n'a pas ete ecrite par ce role, et il le
dit plutot que de detruire ce qui n'est pas le sien.

Valide : syntax-check et ansible-lint sur le role (profil production, 0/0), make test a 0
echec, P81 et P83 vertes. Six tests montent quatre faux disques et exigent la portee qui
leur revient, dont le defaut lui-meme : carte presente, voute absente, portee tenant.

Limite : P02 reste en echec pour la raison anterieure deja consignee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 20:12:18 -04:00
..
test_adressage_derive.py insemination : declarer le lien, l'emettre d'un seul cote, et un test rouge 2026-08-28 13:09:28 -04:00
test_devis_placement.py placement : le devis validait un pont que la flotte n'utilise pas 2026-08-20 21:39:26 -04:00
test_ecriture_atomique.py plan : l ecriture des registres devient atomique — tout, ou rien 2026-09-08 14:57:57 -04:00
test_ecriture_plan.py plan : sauvegarder n emportait plus quarante lignes de commentaire 2026-09-08 17:54:49 -04:00
test_gui_intrants.py resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
test_inventory_host.py clonage : le plancher se perdait au troisieme maillon 2026-09-13 20:10:24 -04:00
test_nomenclature_ecriture.py GUI : la vue Nomenclature, et deux fautes que mes bancs ne voyaient pas 2026-09-08 17:08:45 -04:00
test_portee_console.py la console mesure le pouvoir sur la voute, pas sur la carte 2026-09-20 20:12:18 -04:00
test_raser.py portabilite : monter un SECOND tenant revele trois defauts invisibles 2026-08-10 11:18:14 -04:00
test_raser_resultat.py raser : lire le RESULTAT de la destruction, pas son accuse de reception 2026-08-10 22:47:28 -04:00
test_rendu_gui.py GUI : les six registres ont un formulaire genere, et la sauvegarde aussi 2026-09-08 18:26:33 -04:00
test_runbooks.py assistants : la portee se pese a l'etape, pas a la sequence 2026-09-20 19:55:02 -04:00
test_sonder.py sonder : rapporter ce qui distingue, au lieu d un echec 2026-08-28 17:02:20 -04:00