AutoBackups/test_api.py

92 lines
3.3 KiB
Python

#!/usr/bin/env python3
"""
Script para probar backup manual vía API
"""
import requests
import json
def test_manual_backup_api():
"""Probar backup manual vía API HTTP"""
base_url = "http://127.0.0.1:5120"
try:
# 1. Obtener lista de proyectos
print("1. Obteniendo lista de proyectos...")
response = requests.get(f"{base_url}/api/projects")
if response.status_code == 200:
data = response.json()
projects = data.get("projects", [])
print(f" ✅ Proyectos encontrados: {len(projects)}")
if projects:
project = projects[0]
project_id = project["id"]
project_name = project["name"]
print(f" Probando con: {project_name}")
# 2. Ejecutar backup manual
print("2. Ejecutando backup manual...")
backup_response = requests.post(
f"{base_url}/api/projects/{project_id}/backup",
headers={"Content-Type": "application/json"},
)
if backup_response.status_code == 200:
backup_data = backup_response.json()
print(" ✅ BACKUP EXITOSO!")
print(f" Mensaje: {backup_data.get('message')}")
print(f" Archivo: {backup_data.get('backup_file')}")
print(f" Tamaño: {backup_data.get('file_size_mb', 'N/A')} MB")
else:
print(" ❌ BACKUP FALLÓ!")
print(f" Status: {backup_response.status_code}")
print(f" Error: {backup_response.text}")
# 3. Probar actualización de configuración
print("3. Probando actualización de configuración...")
config_data = {
"schedule_config": {
"schedule": "hourly",
"schedule_time": "15:30",
"enabled": False,
}
}
config_response = requests.put(
f"{base_url}/api/projects/{project_id}/config",
headers={"Content-Type": "application/json"},
json=config_data,
)
if config_response.status_code == 200:
print(" ✅ CONFIGURACIÓN ACTUALIZADA!")
config_result = config_response.json()
print(f" Status: {config_result.get('status')}")
else:
print(" ❌ ACTUALIZACIÓN FALLÓ!")
print(f" Status: {config_response.status_code}")
print(f" Error: {config_response.text}")
else:
print(" ❌ No hay proyectos para probar")
else:
print(f" ❌ Error obteniendo proyectos: {response.status_code}")
print(f" {response.text}")
except requests.exceptions.ConnectionError:
print("❌ ERROR: No se pudo conectar al servidor")
print(" Asegúrate de que la aplicación Flask esté ejecutándose")
except Exception as e:
print(f"❌ ERROR INESPERADO: {e}")
if __name__ == "__main__":
print("AutoBackups - Test API via HTTP")
print("=" * 40)
test_manual_backup_api()
print("=" * 40)