feat/49-provenance Implementa trazabilidad de proveedores #49 #50
39
AGENTS.md
39
AGENTS.md
@@ -159,7 +159,44 @@ Nota: El volumen monta `tienda_ilusion/` en `/app/`, por lo que el path correcto
|
||||
## Tests
|
||||
- Framework: Django unittest
|
||||
- Directorio: don_confiao/tests/
|
||||
- Ejecutar: `docker-compose -f docker-compose.dev.yml run --rm django python manage.py test`
|
||||
- Ejecutar: `docker compose -f docker-compose.dev.yml run --rm django python manage.py test`
|
||||
|
||||
## Workflow TDD (Semáforo Rojo/Verde)
|
||||
|
||||
Todo cambio o nueva funcionalidad debe seguir TDD. **Está prohibido asumir fallos de tests: todo fallo debe ser confirmado ejecutando los tests.**
|
||||
|
||||
### Regla de oro: confirmar antes de modificar
|
||||
Antes de modificar tests (por cambios en comportamiento o por nuevas funcionalidades), **SIEMPRE ejecutar los tests primero** y confirmar que el fallo esperado realmente ocurre. Nunca asumir que un test falla: verificar el fallo con la ejecución real.
|
||||
|
||||
### Ciclo Rojo → Verde → Refactor
|
||||
1. **ROJO (escribir el test y confirmar que falla)**:
|
||||
- Escribir o modificar el test que describe el comportamiento esperado.
|
||||
- Ejecutar los tests **antes de tocar el código de producción**.
|
||||
- Confirmar que el test falla por el motivo esperado (assertion fallida por el comportamiento nuevo, no por error de setup o de importación).
|
||||
- Copiar el output del fallo como evidencia del semáforo rojo.
|
||||
|
||||
2. **VERDE (implementar lo mínimo para que pase)**:
|
||||
- Implementar el código de producción mínimo necesario para que el test pase.
|
||||
- Volver a ejecutar los tests y confirmar que el semáforo queda en verde.
|
||||
|
||||
3. **REFACTOR (limpiar con los tests en verde)**:
|
||||
- Refactorizar y limpiar el código sin cambiar comportamiento.
|
||||
- Re-ejecutar los tests para confirmar que siguen en verde.
|
||||
|
||||
### Ejecutar tests
|
||||
Siempre ejecutar dentro del contenedor de desarrollo:
|
||||
```bash
|
||||
# Test específico (durante el ciclo, preferible sobre el suite completo para ser rápido)
|
||||
docker compose -f docker-compose.dev.yml run --rm django python manage.py test don_confiao.tests.<archivo>
|
||||
|
||||
# Suite completa (al finalizar, para confirmar que nada se rompió)
|
||||
docker compose -f docker-compose.dev.yml run --rm django python manage.py test
|
||||
```
|
||||
|
||||
### Confirmar el fallo, no asumirlo
|
||||
- Si un test falla o se espera que falle, **ejecutarlo y mostrar el resultado** antes de cambiar cualquier código o test.
|
||||
- Verificar que el fallo corresponde a la razón esperada (leer el traceback), no a un problema de entorno, migraciones, importaciones o fixtures.
|
||||
- No modificar tests para "hacerlos pasar" si el fallo no fue previamente confirmado.
|
||||
|
||||
## Comandos Útiles (dentro del contenedor)
|
||||
- Migraciones: `docker-compose -f docker-compose.dev.yml run --rm django python manage.py makemigrations && docker-compose -f docker-compose.dev.yml run --rm django python manage.py migrate`
|
||||
|
||||
Reference in New Issue
Block a user