Saltar a contenido

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:

pytest

Para correr un módulo específico:

pytest revalida/tests/test_views.py

Para verificar cobertura:

pytest --cov=.

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.