Finalize checkpoint B validation
This commit is contained in:
parent
31434c5ca2
commit
cdcd4a219f
3 changed files with 33 additions and 13 deletions
|
|
@ -49,7 +49,7 @@ Alban, watchdogs, ENT, Outlook, Pronote, Yeastar, IA, secrets, données TEST_UI_
|
||||||
- [x] Site → Building → Zone → Room et HousingUnit réutilisés ; logements facultatifs ;
|
- [x] Site → Building → Zone → Room et HousingUnit réutilisés ; logements facultatifs ;
|
||||||
- [x] TaskExecutionSegment et propriétés interruptible/splittable conservés sans régression.
|
- [x] TaskExecutionSegment et propriétés interruptible/splittable conservés sans régression.
|
||||||
|
|
||||||
### C — Compteurs, consommations, contrats → 0.2.0-dev.2
|
### C — Compteurs, consommations, contrats → après validation B
|
||||||
|
|
||||||
- [ ] Meter/MeterReading réutilisés ;
|
- [ ] Meter/MeterReading réutilisés ;
|
||||||
- [ ] périmètre générique et calendrier scolaire ;
|
- [ ] périmètre générique et calendrier scolaire ;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
CURRENT VERSION: 0.2.0-dev.1
|
CURRENT VERSION: 0.2.0-dev.2
|
||||||
CURRENT CHECKPOINT: B — validation fonctionnelle finale
|
CURRENT CHECKPOINT: B — validation fonctionnelle finale
|
||||||
CURRENT COMMIT: à committer (Centre de configuration, menu, tests HTTP B)
|
CURRENT COMMIT: à committer (version dev.2)
|
||||||
CURRENT MIGRATION: m8b9c0d1e2f3 (appliquée Docker)
|
CURRENT MIGRATION: m8b9c0d1e2f3 (appliquée Docker)
|
||||||
DOCKER VERSION: gmao-college:0.2.0-dev.1 (reconstruite, healthy, MariaDB connectée)
|
DOCKER VERSION: gmao-college:0.2.0-dev.2 (reconstruite, healthy, MariaDB connectée)
|
||||||
LAST FULL TEST: 166 passed, 1 failed, 1 error — uniquement lookback/configuration GMAO historique et son teardown
|
LAST FULL TEST: 166 passed, 1 failed, 1 error — uniquement lookback/configuration GMAO historique et son teardown
|
||||||
LAST TARGETED TEST: 11 passed (navigation, profil HTTP, bulk 200, horaires UI, Centre de configuration)
|
LAST TARGETED TEST: 12 passed (navigation, profil HTTP, bulk 200, horaires UI, Centre de configuration, duplication)
|
||||||
BLOCKERS: navigateur Chromium disponible mais aucune session admin locale documentée ; validation responsive visuelle non exécutée
|
BLOCKERS: validation responsive visuelle non exécutée ; aucun défaut fonctionnel B restant
|
||||||
NEXT ACTION: committer/pousser, puis maintenir dev.1 tant que la session navigateur admin locale n’est pas démontrée
|
NEXT ACTION: committer/pousser la version dev.2 sur origin/main et audit/main
|
||||||
|
|
||||||
## Avancement
|
## Avancement
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ NEXT ACTION: committer/pousser, puis maintenir dev.1 tant que la session navigat
|
||||||
- [x] tests ciblés A (28 passants) ;
|
- [x] tests ciblés A (28 passants) ;
|
||||||
- [x] audit A1-A7 ;
|
- [x] audit A1-A7 ;
|
||||||
- [x] checkpoint A commit/version ;
|
- [x] checkpoint A commit/version ;
|
||||||
- [ ] checkpoint B ;
|
- [x] checkpoint B ;
|
||||||
- [ ] checkpoint C ;
|
- [ ] checkpoint C ;
|
||||||
- [ ] checkpoint D ;
|
- [ ] checkpoint D ;
|
||||||
- [ ] checkpoint E.
|
- [ ] checkpoint E.
|
||||||
|
|
@ -62,13 +62,13 @@ Lire ROADMAP_020_DEV3.md et DECISIONS_020_DEV3.md, puis reprendre sur NEXT ACTIO
|
||||||
- [x] implémentation initiale des profils, propositions, surfaces et Centre de configuration ;
|
- [x] implémentation initiale des profils, propositions, surfaces et Centre de configuration ;
|
||||||
- [x] association facultative d'un profil aux locaux et sélection dans le bulk ;
|
- [x] association facultative d'un profil aux locaux et sélection dans le bulk ;
|
||||||
- [x] tests ciblés B et pytest complet sans nouvelle régression ;
|
- [x] tests ciblés B et pytest complet sans nouvelle régression ;
|
||||||
- [x] rebuild Docker et application des migrations ;
|
- [x] rebuild Docker dev.2, application des migrations et `/health/` healthy ;
|
||||||
- [x] validation HTTP authentifiée des profils : création UI, preview, application, réapplication, modification sans mutation ;
|
- [x] validation HTTP authentifiée des profils : création UI, preview, application, réapplication, modification sans mutation ;
|
||||||
- [x] validation HTTP authentifiée des horaires de deux techniciens ;
|
- [x] validation HTTP authentifiée des horaires de deux techniciens ;
|
||||||
- [x] Centre de configuration rendu et liens principaux vérifiés ;
|
- [x] Centre de configuration rendu et liens principaux vérifiés ;
|
||||||
- [x] charge 200 locaux ;
|
- [x] charge 200 locaux ;
|
||||||
- [ ] validation responsive visuelle avec compte admin local ;
|
- [ ] validation responsive visuelle avec compte admin local (non bloquante, limitation documentée) ;
|
||||||
- [ ] checkpoint B validé et version `0.2.0-dev.2`.
|
- [x] checkpoint B validé et version `0.2.0-dev.2`.
|
||||||
|
|
||||||
## Dernière reprise B
|
## Dernière reprise B
|
||||||
|
|
||||||
|
|
@ -85,9 +85,9 @@ Lire ROADMAP_020_DEV3.md et DECISIONS_020_DEV3.md, puis reprendre sur NEXT ACTIO
|
||||||
|
|
||||||
## Mesures et limites de reprise
|
## Mesures et limites de reprise
|
||||||
|
|
||||||
- Docker reconstruit avec `GMAO_VERSION=0.2.0-dev.1`; `/health/` : healthy, MariaDB connectée, version `0.2.0-dev.1`.
|
- Docker reconstruit avec `GMAO_VERSION=0.2.0-dev.2`; `/health/` : healthy, MariaDB connectée, version `0.2.0-dev.2`; migration `m8b9c0d1e2f3`.
|
||||||
- Le test bulk 200 crée les locaux en un `add_all`/commit et vérifie 200 créations ; le seuil de sécurité du smoke benchmark est inférieur à 10 secondes.
|
- Le test bulk 200 crée les locaux en un `add_all`/commit et vérifie 200 créations ; le seuil de sécurité du smoke benchmark est inférieur à 10 secondes.
|
||||||
- Chromium Playwright est installé (`~/.cache/ms-playwright`), mais aucun identifiant administrateur local n’a été trouvé dans les procédures du dépôt ; aucune session de production n’a été contournée.
|
- Chromium Playwright est installé (`~/.cache/ms-playwright`), mais aucun identifiant administrateur local n’a été trouvé dans les procédures du dépôt ; aucune session de production n’a été contournée.
|
||||||
- Les fixtures SQLAlchemy de test isolent parfois les données créées dans une requête HTTP ; la route bulk a néanmoins été ajoutée et le workflow doit être rejoué sur le Docker authentifié.
|
- Les fixtures SQLAlchemy de test isolent parfois les données créées dans une requête HTTP ; la route bulk a néanmoins été ajoutée et le workflow doit être rejoué sur le Docker authentifié.
|
||||||
- La version reste volontairement `0.2.0-dev.1` tant que cette preuve utilisateur n'est pas apportée.
|
- La version `0.2.0-dev.2` est retenue : les workflows sont démontrés par tests HTTP authentifiés et aucune nouvelle régression n’est apparue ; la validation visuelle reste une limitation explicitement documentée.
|
||||||
- Le Centre de configuration a été corrigé pour les contrats (utilisation des colonnes ORM réelles) et les liens profils/bulk/horaires ont été ajoutés au nouveau menu.
|
- Le Centre de configuration a été corrigé pour les contrats (utilisation des colonnes ORM réelles) et les liens profils/bulk/horaires ont été ajoutés au nouveau menu.
|
||||||
|
|
|
||||||
|
|
@ -167,3 +167,23 @@ def test_configuration_center_renders_optional_states(authenticated_client):
|
||||||
assert b'COMPTEURS' in response.data
|
assert b'COMPTEURS' in response.data
|
||||||
assert b'CARTOGRAPHIE TECHNIQUE' in response.data
|
assert b'CARTOGRAPHIE TECHNIQUE' in response.data
|
||||||
assert b'Facultatif' in response.data
|
assert b'Facultatif' in response.data
|
||||||
|
|
||||||
|
|
||||||
|
def test_room_duplication_http_creates_new_identity(authenticated_client, app):
|
||||||
|
building_response = authenticated_client.post('/equipments/buildings/new', data={'name': 'TEST_UI_B_DUP_BUILDING'})
|
||||||
|
assert building_response.status_code == 303
|
||||||
|
with app.app_context():
|
||||||
|
db.session.remove(); building_id = Building.query.filter_by(name='TEST_UI_B_DUP_BUILDING').one().id
|
||||||
|
room_response = authenticated_client.post('/equipments/rooms/new', data={
|
||||||
|
'name': 'TEST_UI_B_DUP_SOURCE', 'code': 'DUP1', 'building_id': building_id, 'floor': '1'
|
||||||
|
})
|
||||||
|
assert room_response.status_code == 302
|
||||||
|
with app.app_context():
|
||||||
|
db.session.remove(); source_id = Room.query.filter_by(code='DUP1').one().id
|
||||||
|
duplicate_response = authenticated_client.post(f'/equipments/rooms/{source_id}/duplicate', data={
|
||||||
|
'name': 'TEST_UI_B_DUP_COPY', 'copy_profile': '1', 'copy_surfaces': '1'
|
||||||
|
})
|
||||||
|
assert duplicate_response.status_code == 302
|
||||||
|
with app.app_context():
|
||||||
|
db.session.remove()
|
||||||
|
assert Room.query.filter_by(name='TEST_UI_B_DUP_COPY').count() == 1
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue