# 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
```bash
# Desde el servidor Odoo
python3 -m odoo.cli.server -d lims_demo --test-enable --test-tags lims_management
```

### Usando el Script Simplificado
```bash
# 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