import pytest class TestExamples: """Test example medical notes and functionality""" def test_example_notes_exist(self): """Test that example notes are properly defined""" examples = { 'chest_pain': """Patient: John Smith, 45-year-old male Chief Complaint: Chest pain for 2 hours History: Patient reports sudden onset of sharp chest pain while at work. Pain is 7/10 intensity, located substernal, radiating to left arm.""", 'diabetes': """Patient: Maria Garcia, 52-year-old female Chief Complaint: Increased thirst and frequent urination for 3 weeks History: Patient reports polyuria, polydipsia, and unintentional weight loss.""", 'pediatric': """Patient: Emma Thompson, 8-year-old female Chief Complaint: Fever and sore throat for 2 days History: Mother reports fever up to 102°F, sore throat, difficulty swallowing.""" } assert 'chest_pain' in examples assert 'diabetes' in examples assert 'pediatric' in examples for key, example in examples.items(): assert len(example.strip()) > 50 # Ensure examples have substance assert "Patient:" in example assert "Chief Complaint:" in example def test_example_loading(self): """Test example loading functionality""" def mock_load_example(example_key): examples = { 'chest_pain': "Chest pain example loaded", 'diabetes': "Diabetes example loaded", 'pediatric': "Pediatric example loaded" } return examples.get(example_key, "Example not found") assert mock_load_example('chest_pain') == "Chest pain example loaded" assert mock_load_example('diabetes') == "Diabetes example loaded" assert mock_load_example('pediatric') == "Pediatric example loaded" assert mock_load_example('invalid_key') == "Example not found" def test_example_content_quality(self): """Test that examples contain required medical information""" examples = { 'chest_pain': """Patient: John Smith, 45-year-old male Chief Complaint: Chest pain for 2 hours History: Sharp chest pain, 7/10 intensity Physical Exam: VS: BP 150/90, HR 110 Assessment: Acute chest pain Plan: EKG, cardiac enzymes""", 'diabetes': """Patient: Maria Garcia, 52-year-old female Chief Complaint: Increased thirst and urination History: Polyuria, polydipsia, weight loss Physical Exam: VS: BP 140/85, BMI 28 Assessment: New onset diabetes Plan: HbA1c, glucose, metformin""", 'pediatric': """Patient: Emma Thompson, 8-year-old female Chief Complaint: Fever and sore throat History: Fever 102°F, sore throat, decreased appetite Physical Exam: Throat erythematous, lymphadenopathy Assessment: Streptococcal pharyngitis Plan: Rapid strep test, amoxicillin""" } for key, example in examples.items(): # Check for essential medical note components assert "Patient:" in example assert "Chief Complaint:" in example assert "History:" in example or "Physical Exam:" in example assert "Assessment:" in example assert "Plan:" in example # Check for age and gender assert any(age in example for age in ['year-old', 'yo', 'years old']) assert any(gender in example for gender in ['male', 'female']) def test_example_button_handlers(self): """Test example button click handlers""" def mock_example_click_handler(example_text): def handler(): return f"Loaded: {example_text[:20]}..." return handler # Test each example handler examples = { 'chest_pain': "Chest pain example text", 'diabetes': "Diabetes example text", 'pediatric': "Pediatric example text" } for key, text in examples.items(): handler = mock_example_click_handler(text) result = handler() assert "Loaded:" in result assert text[:20] in result def test_clear_functionality(self): """Test clear button functionality""" def mock_clear_handler(): return { 'notes_input': '', 'file_upload': None, 'output_area': 'Ready to generate SOAP notes!' } result = mock_clear_handler() assert result['notes_input'] == '' assert result['file_upload'] is None assert 'Ready to generate' in result['output_area']