110 lines
4.2 KiB
Python
110 lines
4.2 KiB
Python
#!/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}")
|