clinical_laboratory/lims_management/tests
Luis Ernesto Portillo Zaldivar 39318f9073 feat(#54): Cancelar automáticamente muestras y pruebas al cancelar orden
- Agregar estado 'cancelled' a stock.lot para muestras
- Implementar método action_cancel() en stock.lot
- Override action_cancel() en sale.order para:
  * Cancelar muestras en estados: pending_collection, collected, received, in_process
  * Cancelar pruebas asociadas que no estén validadas
  * Registrar mensajes en el chatter de cada elemento cancelado
  * Mostrar resumen de elementos cancelados en la orden
- Agregar tests unitarios completos para verificar:
  * Cancelación correcta de muestras y pruebas
  * No cancelación de elementos en estados finales
  * Generación de mensajes en chatter
  * Órdenes normales no afectadas

La funcionalidad asegura que no queden muestras o pruebas "huérfanas"
cuando se cancela una orden de laboratorio.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 18:53:19 -06:00
..
__init__.py feat(#54): Cancelar automáticamente muestras y pruebas al cancelar orden 2025-07-15 18:53:19 -06:00
README.md feat(#51): Task 12 completada - Tests automatizados para catálogo de parámetros 2025-07-15 14:08:33 -06:00
test_analysis_parameter.py feat(#51): Task 12 completada - Tests automatizados para catálogo de parámetros 2025-07-15 14:08:33 -06:00
test_auto_result_generation.py feat(#51): Task 12 completada - Tests automatizados para catálogo de parámetros 2025-07-15 14:08:33 -06:00
test_order_cancel_cascade.py feat(#54): Cancelar automáticamente muestras y pruebas al cancelar orden 2025-07-15 18:53:19 -06:00
test_parameter_range.py feat(#51): Task 12 completada - Tests automatizados para catálogo de parámetros 2025-07-15 14:08:33 -06:00
test_result_parameter_integration.py feat(#51): Task 12 completada - Tests automatizados para catálogo de parámetros 2025-07-15 14:08:33 -06:00

Tests del Módulo LIMS

Este directorio contiene los tests automatizados para el módulo lims_management, específicamente para el sistema de catálogo de parámetros.

Estructura de Tests

1. test_analysis_parameter.py

Tests para el modelo lims.analysis.parameter:

  • Creación de parámetros con diferentes tipos de valores
  • Validaciones de campos requeridos
  • Prevención de códigos duplicados
  • Relaciones con rangos y análisis

2. test_parameter_range.py

Tests para el modelo lims.parameter.range:

  • Creación de rangos de referencia
  • Validaciones de valores mínimos y máximos
  • Rangos específicos por género y edad
  • Búsqueda de rangos aplicables según características del paciente

3. test_result_parameter_integration.py

Tests de integración entre resultados y parámetros:

  • Asignación de parámetros a resultados
  • Selección automática de rangos aplicables
  • Detección de valores fuera de rango y críticos
  • Formato de visualización de resultados

4. test_auto_result_generation.py

Tests para la generación automática de resultados:

  • Creación automática al generar pruebas
  • Herencia de secuencia desde la configuración
  • Rendimiento en creación masiva

Ejecución de Tests

Usando Odoo Test Framework

# Desde el servidor Odoo
python3 -m odoo.cli.server -d lims_demo --test-enable --test-tags lims_management

Usando el Script Simplificado

# Copiar script al contenedor
docker cp test/test_parameters_simple.py lims_odoo:/tmp/

# Ejecutar tests
docker-compose exec odoo python3 /tmp/test_parameters_simple.py

Cobertura de Tests

Los tests cubren:

  1. Validaciones del Modelo

    • Campos requeridos según tipo de parámetro
    • Restricciones de unicidad
    • Validaciones de rangos
  2. Lógica de Negocio

    • Generación automática de resultados
    • Búsqueda de rangos aplicables
    • Cálculo de estados (fuera de rango, crítico)
  3. Integración

    • Flujo completo desde orden hasta resultados
    • Compatibilidad con el sistema existente

Datos de Prueba

Los tests utilizan:

  • Parámetros de demostración del archivo parameter_demo.xml
  • Rangos de referencia de parameter_range_demo.xml
  • Análisis configurados en analysis_parameter_config_demo.xml

Notas Importantes

  • Los tests se ejecutan en transacciones que se revierten automáticamente
  • No afectan los datos de producción o demostración
  • Requieren que el módulo esté instalado con datos demo