106 lines
4.6 KiB
Python
106 lines
4.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test final pour valider que le système de configuration des échelles
|
|
fonctionne correctement de bout en bout.
|
|
"""
|
|
|
|
from app import create_app
|
|
from app_config import config_manager
|
|
|
|
def test_final_validation():
|
|
"""Test final de validation du système."""
|
|
app = create_app('development')
|
|
|
|
with app.app_context():
|
|
print("=== VALIDATION FINALE : Système de configuration des échelles ===\n")
|
|
|
|
# 1. Test des modifications via l'interface de configuration
|
|
print("1. Test des modifications via config_manager:")
|
|
|
|
# Modifier le label de la valeur '1'
|
|
success = config_manager.update_scale_value('1', 'EN APPRENTISSAGE', '#ff9900', True)
|
|
print(f" Modification '1' → 'EN APPRENTISSAGE': {success}")
|
|
|
|
# Vérifier que la modification est persistée
|
|
updated_values = config_manager.get_competence_scale_values()
|
|
print(f" Nouveau label pour '1': '{updated_values['1']['label']}'")
|
|
print(f" Nouvelle couleur pour '1': '{updated_values['1']['color']}'")
|
|
|
|
# 2. Test d'affichage dynamique
|
|
print("\n2. Test d'affichage dynamique:")
|
|
|
|
display_info = config_manager.get_display_info('1', 'score')
|
|
print(f" get_display_info('1', 'score'): {display_info}")
|
|
|
|
# 3. Test avec l'interface de notation
|
|
print("\n3. Test d'intégration avec l'interface de notation:")
|
|
|
|
with app.test_client() as client:
|
|
# Accéder à une page de notation
|
|
response = client.get('/assessments/1/grading')
|
|
|
|
if response.status_code == 200:
|
|
content = response.get_data(as_text=True)
|
|
|
|
# Vérifier que les labels modifiés apparaissent
|
|
if 'EN APPRENTISSAGE' in content:
|
|
print(" ✅ Label 'EN APPRENTISSAGE' trouvé dans l'interface de notation")
|
|
else:
|
|
print(" ❌ Label 'EN APPRENTISSAGE' non trouvé dans l'interface")
|
|
|
|
if 'SUPER ACQUIS' in content:
|
|
print(" ✅ Label 'SUPER ACQUIS' trouvé dans l'interface de notation")
|
|
else:
|
|
print(" ❌ Label 'SUPER ACQUIS' non trouvé dans l'interface")
|
|
else:
|
|
print(f" ❌ Erreur d'accès à l'interface de notation: {response.status_code}")
|
|
|
|
# 4. Test de la page de configuration
|
|
print("\n4. Test de la page de configuration:")
|
|
|
|
with app.test_client() as client:
|
|
response = client.get('/config/scale')
|
|
|
|
if response.status_code == 200:
|
|
content = response.get_data(as_text=True)
|
|
|
|
if 'EN APPRENTISSAGE' in content:
|
|
print(" ✅ Label 'EN APPRENTISSAGE' trouvé dans la page de configuration")
|
|
else:
|
|
print(" ❌ Label 'EN APPRENTISSAGE' non trouvé dans la page de configuration")
|
|
else:
|
|
print(f" ❌ Erreur d'accès à la page de configuration: {response.status_code}")
|
|
|
|
# 5. Test de cohérence finale
|
|
print("\n5. Test de cohérence finale:")
|
|
|
|
all_consistent = True
|
|
scale_values = config_manager.get_competence_scale_values()
|
|
|
|
for value in ['0', '1', '2', '3']:
|
|
if value in scale_values:
|
|
db_label = scale_values[value]['label']
|
|
display_info = config_manager.get_display_info(value, 'score')
|
|
display_label = display_info['label']
|
|
|
|
if db_label == display_label:
|
|
print(f" ✅ Cohérence pour '{value}': '{db_label}'")
|
|
else:
|
|
print(f" ❌ Incohérence pour '{value}': DB='{db_label}' vs Display='{display_label}'")
|
|
all_consistent = False
|
|
|
|
# 6. Résultat final
|
|
print("\n6. RÉSULTAT FINAL:")
|
|
|
|
if all_consistent:
|
|
print(" 🎉 SUCCÈS : Le système de configuration des échelles fonctionne parfaitement !")
|
|
print(" 📋 Les modifications apportées dans la page config/scale sont maintenant")
|
|
print(" correctement prises en compte dans toute l'application.")
|
|
print(" ✅ Problème de synchronisation des labels : RÉSOLU")
|
|
else:
|
|
print(" ⚠️ Certaines incohérences subsistent")
|
|
|
|
print("\n=== Fin de la validation ===")
|
|
|
|
if __name__ == '__main__':
|
|
test_final_validation() |