#!/usr/bin/env python3 """ Script para probar automáticamente el cambio de idioma en SIDEL ScriptsManager """ import requests import json import time # Configuración de la sesión session = requests.Session() base_url = "http://localhost:5002" try: print("🔄 Iniciando prueba del cambio de idioma...") # 1. Hacer login print("\n1. Iniciando sesión como admin...") login_data = {"username": "admin", "password": "admin", "remember": "on"} login_response = session.post(f"{base_url}/login", data=login_data) if login_response.status_code != 200: print(f"❌ Error en login: {login_response.status_code}") exit(1) print("✅ Login exitoso") # 2. Verificar página inicial print("\n2. Accediendo a página principal...") home_response = session.get(f"{base_url}/") print(f"✅ Página principal cargada (status: {home_response.status_code})") # 3. Acceder a script-group/5 print("\n3. Accediendo a script-group/5...") group_response = session.get(f"{base_url}/script-group/5") print(f"✅ Grupo 5 cargado (status: {group_response.status_code})") # 4. Verificar estado inicial del idioma print("\n4. Verificando estado del idioma...") current_lang_response = session.get(f"{base_url}/api/user/preferences") if current_lang_response.status_code == 200: prefs = current_lang_response.json() current_lang = prefs.get("language", "en") print(f"✅ Idioma actual: {current_lang}") else: print( f"⚠️ No se pudo obtener preferencias (status: {current_lang_response.status_code})" ) current_lang = "en" # 5. Cambiar idioma a español print("\n5. Cambiando idioma a español...") lang_change_data = {"language": "es"} lang_response = session.post( f"{base_url}/api/user/preferences", json=lang_change_data, headers={"Content-Type": "application/json"}, ) print(f"✅ Cambio de idioma enviado (status: {lang_response.status_code})") if lang_response.status_code == 200: print(f"📝 Respuesta: {lang_response.json()}") # 6. Verificar que el cambio se guardó print("\n6. Verificando que el cambio se guardó...") time.sleep(0.5) # Pequeña pausa verify_response = session.get(f"{base_url}/api/user/preferences") if verify_response.status_code == 200: new_prefs = verify_response.json() new_lang = new_prefs.get("language", "en") print(f"✅ Nuevo idioma guardado: {new_lang}") if new_lang == "es": print("🎉 ¡Cambio de idioma exitoso!") else: print("❌ El idioma no se cambió correctamente") # 7. Recargar página del grupo para verificar persistencia print("\n7. Recargando página del grupo para verificar persistencia...") reload_response = session.get(f"{base_url}/script-group/5") print(f"✅ Página recargada (status: {reload_response.status_code})") # 8. Verificar idioma después de recargar print("\n8. Verificando idioma después de recargar...") final_check = session.get(f"{base_url}/api/user/preferences") if final_check.status_code == 200: final_prefs = final_check.json() final_lang = final_prefs.get("language", "en") print(f"✅ Idioma final: {final_lang}") if final_lang == "es": print("🎉 ¡ÉXITO! El idioma se mantiene después de recargar") else: print("❌ PROBLEMA: El idioma volvió a inglés después de recargar") # 9. Probar cambio de vuelta a inglés print("\n9. Probando cambio de vuelta a inglés...") lang_change_back = {"language": "en"} back_response = session.post( f"{base_url}/api/user/preferences", json=lang_change_back, headers={"Content-Type": "application/json"}, ) print(f"✅ Cambio a inglés enviado (status: {back_response.status_code})") print("\n🏁 Prueba completada") except requests.exceptions.ConnectionError: print( "❌ Error: No se pudo conectar al servidor. ¿Está ejecutándose en http://localhost:5002?" ) except Exception as e: print(f"❌ Error inesperado: {e}")