Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| """ | |
| Test script to verify Provider Summary clearing functionality. | |
| """ | |
| import sys | |
| import os | |
| # Add project root to path | |
| project_root = os.path.dirname(os.path.abspath(__file__)) | |
| sys.path.insert(0, project_root) | |
| from src.core.simplified_medical_app import SimplifiedMedicalApp | |
| from src.core.spiritual_state import SpiritualState, SpiritualAssessment | |
| def test_provider_summary_clearing(): | |
| """Test that provider summary is cleared when session is reset.""" | |
| print("π§ͺ Testing Provider Summary Clearing Functionality\n") | |
| print("=" * 60) | |
| # Initialize app | |
| print("\n1οΈβ£ Initializing SimplifiedMedicalApp...") | |
| app = SimplifiedMedicalApp() | |
| print(" β App initialized") | |
| # Verify no summary exists initially | |
| print("\n2οΈβ£ Checking initial state...") | |
| initial_summary = app.get_last_provider_summary() | |
| if initial_summary is None: | |
| print(" β No provider summary exists initially (expected)") | |
| else: | |
| print(" β UNEXPECTED: Provider summary exists before any RED flag") | |
| return False | |
| # Create a mock RED flag assessment | |
| print("\n3οΈβ£ Creating mock RED flag assessment...") | |
| red_assessment = SpiritualAssessment( | |
| state=SpiritualState.RED, | |
| indicators=[ | |
| "Expressing hopelessness", | |
| "Mentions of self-harm thoughts", | |
| "Withdrawal from spiritual community" | |
| ], | |
| confidence=0.92, | |
| reasoning="Patient expresses severe spiritual distress with suicidal ideation" | |
| ) | |
| print(" β RED flag assessment created") | |
| # Manually trigger provider summary generation | |
| print("\n4οΈβ£ Generating provider summary...") | |
| app.spiritual_state.transition_to(SpiritualState.RED, "Test RED flag") | |
| app.spiritual_state.pending_referral = { | |
| "assessment": red_assessment, | |
| "language": "English", | |
| "original_message": "I feel so hopeless, I don't want to live anymore" | |
| } | |
| # Set patient info | |
| app.set_patient_info(name="Test Patient", phone="+1-555-0123") | |
| # Generate referral (this creates the provider summary) | |
| referral_text = app._generate_referral(red_assessment) | |
| print(f" β Provider summary generated ({len(referral_text)} chars)") | |
| # Verify summary exists | |
| print("\n5οΈβ£ Verifying summary exists...") | |
| summary_after_red = app.get_last_provider_summary() | |
| if summary_after_red is not None: | |
| print(" β Provider summary exists after RED flag") | |
| print(f" π Patient: {summary_after_red.patient_name}") | |
| print(f" π Phone: {summary_after_red.patient_phone}") | |
| print(f" π Indicators: {len(summary_after_red.indicators)}") | |
| print(f" π Severity: {summary_after_red.severity_level}") | |
| else: | |
| print(" β FAIL: Provider summary not created") | |
| return False | |
| # Reset session (this should clear the summary) | |
| print("\n6οΈβ£ Resetting session (Clear Chat)...") | |
| app.reset_session() | |
| print(" β Session reset completed") | |
| # Verify summary is cleared | |
| print("\n7οΈβ£ Verifying summary is cleared...") | |
| summary_after_reset = app.get_last_provider_summary() | |
| if summary_after_reset is None: | |
| print(" β Provider summary successfully cleared after reset") | |
| else: | |
| print(" β FAIL: Provider summary still exists after reset") | |
| return False | |
| print("\n" + "=" * 60) | |
| print("β ALL TESTS PASSED!") | |
| print("=" * 60) | |
| return True | |
| if __name__ == "__main__": | |
| success = test_provider_summary_clearing() | |
| sys.exit(0 if success else 1) | |