#!/usr/bin/env python3 """ Test script for enhanced prompt optimization integration. """ import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'src')) def test_integration(): """Test the integration of enhanced prompt editor with the main app.""" print("๐Ÿงช Testing Enhanced Prompt Optimization Integration") print("=" * 60) try: # Test 1: Import all components print("1. Testing imports...") from interface.enhanced_prompt_editor import EnhancedPromptEditor from config.prompt_management.prompt_controller import PromptController from interface.gradio_app import main print(" โœ“ All components import successfully") # Test 2: Initialize components print("\n2. Testing component initialization...") editor = EnhancedPromptEditor() controller = PromptController() print(" โœ“ Components initialize successfully") # Test 3: Test prompt loading print("\n3. Testing prompt loading...") prompts = editor.get_available_prompts() print(f" โœ“ Found {len(prompts)} available prompts:") for prompt in prompts: print(f" - {prompt}") # Test 4: Test session override functionality print("\n4. Testing session override functionality...") session_id = "integration_test_session" test_content = "Test session override content for integration testing" # Load original prompt original_content, _, _ = editor.load_prompt_for_editing( "๐Ÿ” Spiritual Monitor (Classifier)", session_id ) print(f" โœ“ Original prompt loaded: {len(original_content)} chars") # Apply session override status_html, success = editor.apply_prompt_changes( "๐Ÿ” Spiritual Monitor (Classifier)", test_content, session_id ) print(f" โœ“ Session override applied: {success}") # Verify override is active override_content, _, _ = editor.load_prompt_for_editing( "๐Ÿ” Spiritual Monitor (Classifier)", session_id ) override_active = test_content in override_content print(f" โœ“ Session override active: {override_active}") # Test reset functionality reset_content, _, _ = editor.reset_prompt_to_default( "๐Ÿ” Spiritual Monitor (Classifier)", session_id ) reset_successful = test_content not in reset_content print(f" โœ“ Reset to default works: {reset_successful}") # Test 5: Test validation print("\n5. Testing prompt validation...") validation_html, is_valid = editor.validate_prompt_syntax(original_content) print(f" โœ“ Validation works: {is_valid}") # Test 6: Test session status print("\n6. Testing session status...") # Set override again for status test editor.apply_prompt_changes( "๐Ÿ” Spiritual Monitor (Classifier)", test_content, session_id ) status_html = editor.get_session_prompt_status(session_id) has_overrides = "Active Session Overrides" in status_html print(f" โœ“ Session status tracking: {has_overrides}") print("\n" + "=" * 60) print("๐ŸŽ‰ ALL INTEGRATION TESTS PASSED!") print("\n๐Ÿ“‹ Summary:") print(" โœ… Enhanced prompt editor fully integrated") print(" โœ… Session-level prompt overrides working") print(" โœ… Validation and status tracking functional") print(" โœ… Reset and promotion workflows ready") print("\n๐Ÿš€ Ready to launch the enhanced medical assistant!") return True except Exception as e: print(f"\nโŒ Integration test failed: {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": success = test_integration() sys.exit(0 if success else 1)