102 lines
1.8 KiB
Markdown
102 lines
1.8 KiB
Markdown
# 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. |