143 lines
3.9 KiB
Python
143 lines
3.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script de prueba para verificar las funcionalidades de backup manual
|
|
y configuración de proyectos implementadas
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# Agregar el directorio src al path
|
|
current_dir = Path(__file__).parent
|
|
src_dir = current_dir / "src"
|
|
sys.path.insert(0, str(src_dir))
|
|
|
|
# Imports de módulos propios
|
|
from models.config_model import Config
|
|
from models.project_model import ProjectManager
|
|
from services.basic_backup_service import BasicBackupService
|
|
|
|
|
|
def test_backup_manual():
|
|
"""Probar funcionalidad de backup manual"""
|
|
print("=== TEST BACKUP MANUAL ===")
|
|
|
|
try:
|
|
# Inicializar servicios
|
|
config = Config()
|
|
project_manager = ProjectManager()
|
|
backup_service = BasicBackupService(config)
|
|
|
|
# Obtener proyectos
|
|
projects = project_manager.get_all_projects()
|
|
print(f"Proyectos encontrados: {len(projects)}")
|
|
|
|
if not projects:
|
|
print("No hay proyectos para probar")
|
|
return
|
|
|
|
# Probar backup del primer proyecto
|
|
project = projects[0]
|
|
print(f"Probando backup del proyecto: {project.name}")
|
|
print(f"Ruta del proyecto: {project.path}")
|
|
|
|
# Ejecutar backup
|
|
result = backup_service.backup_project(project)
|
|
|
|
if result["success"]:
|
|
print("✅ BACKUP EXITOSO!")
|
|
print(f"Archivo creado: {result['backup_file']}")
|
|
print(f"Tamaño: {result['file_size_mb']:.2f} MB")
|
|
else:
|
|
print("❌ BACKUP FALLÓ!")
|
|
print(f"Error: {result['error']}")
|
|
|
|
except Exception as e:
|
|
print(f"❌ ERROR EN TEST: {e}")
|
|
import traceback
|
|
|
|
traceback.print_exc()
|
|
|
|
|
|
def test_config_update():
|
|
"""Probar funcionalidad de actualización de configuración"""
|
|
print("\n=== TEST ACTUALIZACIÓN DE CONFIGURACIÓN ===")
|
|
|
|
try:
|
|
# Inicializar ProjectManager
|
|
project_manager = ProjectManager()
|
|
|
|
# Obtener proyectos
|
|
projects = project_manager.get_all_projects()
|
|
|
|
if not projects:
|
|
print("No hay proyectos para probar")
|
|
return
|
|
|
|
project = projects[0]
|
|
print(f"Probando configuración del proyecto: {project.name}")
|
|
print(
|
|
f"Estado inicial - Habilitado: {project.enabled}, Schedule: {project.schedule}"
|
|
)
|
|
|
|
# Preparar nueva configuración
|
|
new_config = {
|
|
"schedule_config": {
|
|
"schedule": "hourly",
|
|
"schedule_time": "10:30",
|
|
"enabled": False,
|
|
}
|
|
}
|
|
|
|
# Actualizar configuración
|
|
success = project_manager.update_project_config(project.id, new_config)
|
|
|
|
if success:
|
|
print("✅ CONFIGURACIÓN ACTUALIZADA!")
|
|
|
|
# Verificar cambios
|
|
updated_project = project_manager.get_project(project.id)
|
|
print(
|
|
f"Estado actualizado - Habilitado: {updated_project.enabled}, Schedule: {updated_project.schedule}"
|
|
)
|
|
|
|
# Restaurar configuración original
|
|
restore_config = {
|
|
"schedule_config": {
|
|
"schedule": "daily",
|
|
"schedule_time": "02:00",
|
|
"enabled": True,
|
|
}
|
|
}
|
|
project_manager.update_project_config(project.id, restore_config)
|
|
print("✅ Configuración restaurada")
|
|
|
|
else:
|
|
print("❌ FALLO AL ACTUALIZAR CONFIGURACIÓN!")
|
|
|
|
except Exception as e:
|
|
print(f"❌ ERROR EN TEST: {e}")
|
|
import traceback
|
|
|
|
traceback.print_exc()
|
|
|
|
|
|
def main():
|
|
"""Función principal"""
|
|
print("AutoBackups - Test de Funcionalidades")
|
|
print("=" * 50)
|
|
|
|
# Test 1: Backup manual
|
|
test_backup_manual()
|
|
|
|
# Test 2: Actualización de configuración
|
|
test_config_update()
|
|
|
|
print("\n" + "=" * 50)
|
|
print("Tests completados")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|