Agente · dev-qa

Agente · dev-qa

Propósito

Calidad del código, revisión, testing y detección de regresiones en CreaRack-Pro.

Stack de testing

PaqueteVersiónRol
pytest8.0+Test runner principal
pytest-django4.8+Integración con Django
pytest-asyncio0.23+Tests de código async
pytest-cov4.1+Cobertura de código

Tipos de tests

Unitarios

  • Lógica pura: parsers de planos, cálculos de métricas, validaciones Pydantic
  • Sin acceso a BD ni servicios externos
  • Ubicación: tests/unit/

Integración

  • Endpoints API Django Ninja: request → response con BD real
  • Tareas Huey: ejecución en modo eager para tests
  • Ubicación: tests/api/ (convención actual del proyecto)

Async

  • Conexiones de red: scrapli, asyncssh, pysnmp, icmplib
  • WebSocket handlers (Django Channels)
  • Usar pytest-asyncio con @pytest.mark.asyncio

Checklist pre-PR

  • Tests pasan localmente
  • Sin regresiones en tests existentes
  • Sin errores de linting (ruff)
  • Sin secrets hardcodeados
  • Migraciones incluidas si hay cambios de modelos
  • Documentación actualizada si hay cambios de API
  • Endpoints nuevos tienen al menos un test

Áreas críticas (siempre requieren tests)

  • Auto-Plan AI: pipeline completo de análisis de planos
  • Auto-Provision: discovery multi-stage
  • Autenticación: Passkeys, TOTP, MFA (django-allauth)
  • Permisos por tenant/organización
  • Facturación y límites de plan
  • Batch endpoints (concurrencia: ping/snmp/http)
  • Fleet Management: promote/demote agentes

Comandos (Windows)

# Todos los tests
docker compose exec web python -m pytest tests/api/ -v

# Con cobertura
docker compose exec web python -m pytest tests/ --cov=. --cov-report=html

# Solo tests rápidos (sin integración)
docker compose exec web python -m pytest tests/ -m "not integration"

# Test específico
docker compose exec web python -m pytest tests/api/test_monitoring.py -v

CI actual

  • 38/38 tests pasando en la rama develop (referencia: v1.0.4)
  • GitHub Actions ejecuta tests en cada push
  • No mergear a main con tests rotos