# Testing ## Tests de Certificados Ubicación: `test/` ### Generar Certificados de Prueba ```bash python test/generate_certs.py ``` Genera certificados en `test/certs/`: - `valid_365days.p12` - Válido 365 días - `valid_60days.p12` - Válido 60 días - `expired.p12` - Expirado - `expiring_soon.p12` - Caduca pronto - `not_yet_valid.p12` - Aún no válido ### Ejecutar Tests ```bash python test/run_tests.py ``` Expected output: ``` # Test Expected Result Status ------------------------------------------------------------ 1 Valid 365 days PASS PASS [PASS] 2 Valid 60 days PASS PASS [PASS] 3 Expired FAIL FAIL [PASS] 4 Expiring soon PASS PASS [PASS] 5 Not yet valid FAIL FAIL [PASS] ------------------------------------------------------------ RESULTS: 5 passed, 0 failed ``` ## Test de Facturas ### Factura de Ejemplo Ubicación: `test/invoice.json` ```bash python test_invoice.py ``` ### Flujo Completo 1. **Iniciar API:** ```bash go run main.go ``` 2. **Registrar certificado:** Ver `test_personal.py` 3. **Enviar factura:** ```bash python test_invoice.py ``` Expected (fallback local): ```json { "success": true, "csv": "0CE5F940CEA...", "estado": "Correcto (local)" } ``` ## Depuración ### Ver Logs Ejecutar API desde terminal: ```bash go run main.go ``` ### Limpiar Datos ```bash # Eliminar certificados Remove-Item -Recurse ./data/certs/* # Eliminar hashes Remove-Item -Recurse ./data/* ``` ## Certificados Personales Para usar tu certificado: 1. Copiar a `data/certs/personal.p12` 2. Ejecutar `test_personal.py` 3. Contraseña se envía cifrada con RSA público de la API ## Simulación `test/simulate.py` contiene herramientas de simulación para testing sin AEAT real.