Ir al contenido

Testing y calidad

La suite de tests de Python usa pytest. Todos los tests son unitarios o de integración local; no requieren red ni credenciales SUNAT.

Ventana de terminal
# Todos los tests
uv run pytest -m "not e2e"

tests/test_validator.py contiene casos parametrizados por el código de cada regla SUNAT. Cada código del catálogo implementado debe aparecer al menos una vez. Para verificar cobertura de una regla concreta:

Ventana de terminal
uv run pytest tests/test_validator.py -v | grep 2074
Ventana de terminal
cd sdk/typescript
npm install
npm run generate
npm run build
npm test

Antes de publicar, verifica que todas las fuentes de versión estén alineadas y que openapi.json esté actualizado:

Ventana de terminal
uv run python scripts/check_sdk_sync.py

Si alguna fuente de versión difiere o el esquema está desfasado, el script retornará código de error 1.

  • test_models.py — validación Pydantic de modelos.
  • test_render.py — generación de XML UBL 2.1.
  • test_sign.py — firma digital XMLDSig con RSA-SHA-256 y SHA-256.
  • test_validator.py — reglas SUNAT parametrizadas por código sobre XML generado.
  • test_api.py — tests de integración contra la API REST FastAPI con los nuevos flags firmar y validar_sunat.
  • test_sdk_types.py — presencia de modelos en openapi.json.
  • sdk/typescript/test/client.test.ts — tipado estático y round-trip runtime del SDK TS.