#!/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)