Estrategia de Pruebas
Para garantizar la estabilidad y calidad de treinar_revalida, utilizamos una estrategia de pruebas automatizadas basada en pytest.
Ejecución de Tests
Para correr todos los tests:
Para correr un módulo específico:
Para verificar cobertura:
Plan de Pruebas por Módulo
1. Administración y Modelos
- [ ] Registro de Modelos: Verificar que todos los modelos nuevos aparecen en el admin.
- [ ] Permisos: Asegurar que solo superusuarios pueden configurar parámetros de IA.
- [ ] Acciones en Lote: Testear la asignación masiva de créditos.
2. Preguntas Discursivas
- [ ] Renderizado: Verificar que el HTML de la pregunta se muestra correctamente.
- [ ] Validación: Asegurar que no se envíen respuestas vacías.
- [ ] Contador: (Test de frontend/integración) Verificar límite de caracteres.
3. Integración con IA
- [ ] Mocking: CRÍTICO. Nunca llamar a la API real de OpenAI en tests automáticos. Usar
unittest.mock. - [ ] Manejo de Errores: Simular timeouts y errores 500 de la API.
- [ ] Parsing: Verificar que el JSON devuelto por la IA se procesa correctamente.
4. Sistema de Créditos
- [ ] Transacciones: Verificar que el saldo nunca sea negativo.
- [ ] Concurrencia: (Opcional) Verificar race conditions en consumo de créditos.
- [ ] Historial: Asegurar que cada consumo genera un registro de transacción.
5. Importación
- [ ] Schema Validation: Probar con JSONs malformados y verificar que fallan elegantemente.
- [ ] Idempotencia: Verificar qué pasa si se importa la misma pregunta dos veces.