Spaces:
Sleeping
Sleeping
# tests/conftest.py | |
import pytest | |
from datetime import datetime | |
from typing import Dict | |
from src.config.settings import Settings | |
from src.models.state import HospitalState, TaskType, PriorityLevel | |
def mock_settings(): | |
"""Fixture for test settings""" | |
return { | |
"OPENAI_API_KEY": "test-api-key", | |
"MODEL_NAME": "gpt-4o-mini-2024-07-18", | |
"MODEL_TEMPERATURE": 0, | |
"MEMORY_TYPE": "sqlite", | |
"MEMORY_URI": ":memory:", | |
"LOG_LEVEL": "DEBUG" | |
} | |
def mock_llm_response(): | |
"""Fixture for mock LLM responses""" | |
return { | |
"input_analysis": { | |
"task_type": TaskType.PATIENT_FLOW, | |
"priority": PriorityLevel.HIGH, | |
"department": "ER", | |
"context": {"urgent": True} | |
}, | |
"patient_flow": { | |
"recommendations": ["Optimize bed allocation", "Increase staff in ER"], | |
"metrics": {"waiting_time": 25, "bed_utilization": 0.85} | |
}, | |
"quality_monitoring": { | |
"satisfaction_score": 8.5, | |
"compliance_rate": 0.95, | |
"recommendations": ["Maintain current standards"] | |
} | |
} | |
def mock_hospital_state() -> HospitalState: | |
"""Fixture for mock hospital state""" | |
return { | |
"messages": [], | |
"current_task": TaskType.GENERAL, | |
"priority_level": PriorityLevel.MEDIUM, | |
"department": None, | |
"metrics": { | |
"patient_flow": { | |
"total_beds": 100, | |
"occupied_beds": 75, | |
"waiting_patients": 10, | |
"average_wait_time": 30.0 | |
}, | |
"resources": { | |
"equipment_availability": {"ventilators": True}, | |
"supply_levels": {"masks": 0.8}, | |
"resource_utilization": 0.75 | |
}, | |
"quality": { | |
"patient_satisfaction": 8.5, | |
"compliance_rate": 0.95, | |
"incident_count": 2 | |
}, | |
"staffing": { | |
"total_staff": 200, | |
"available_staff": {"doctors": 20, "nurses": 50}, | |
"overtime_hours": 45.5 | |
} | |
}, | |
"analysis": None, | |
"context": {}, | |
"timestamp": datetime.now(), | |
"thread_id": "test-thread-id" | |
} | |
def mock_tools_response(): | |
"""Fixture for mock tool responses""" | |
return { | |
"patient_tools": { | |
"wait_time": 30.5, | |
"bed_capacity": {"available": 25, "total": 100}, | |
"discharge_time": datetime.now() | |
}, | |
"resource_tools": { | |
"supply_levels": {"critical": [], "reorder": ["masks"]}, | |
"equipment_status": {"available": ["xray"], "in_use": ["mri"]} | |
} | |
} | |
def mock_error_response(): | |
"""Fixture for mock error responses""" | |
return { | |
"validation_error": { | |
"code": "INVALID_INPUT", | |
"message": "Invalid input parameters", | |
"details": {"field": "department", "issue": "required"} | |
}, | |
"processing_error": { | |
"code": "PROCESSING_FAILED", | |
"message": "Failed to process request", | |
"details": {"step": "analysis", "reason": "timeout"} | |
} | |
}# Test configuration implementation | |