#!/usr/bin/env python3 """ Test script to validate the GUI setup """ import sys import os from pathlib import Path # Add paths project_root = Path(__file__).parent sys.path.insert(0, str(project_root)) sys.path.insert(0, str(project_root / 'server')) def test_imports(): """Test all critical imports""" print("Testing imports...") try: # Test server imports from server.app import create_app print("✅ Server app import successful") from server.config_runtime import server_config print("✅ Server config import successful") from server.jobs import JobManager, Job, JobPhase print("✅ Job system imports successful") from server.ws import WebSocketManager print("✅ WebSocket manager import successful") from server.runners import ProgressReporter, run_job print("✅ Job runners import successful") # Test core imports from core.process_brief_enhanced import DocumentAnalyzer print("✅ DocumentAnalyzer import successful") from core.config import config print("✅ Core config import successful") except ImportError as e: print(f"❌ Import failed: {e}") return False return True def test_config(): """Test configuration validation""" print("\nTesting configuration...") try: from server.config_runtime import server_config # Check directories server_config.ensure_directories() print("✅ Directories created successfully") # Check dev mode print(f"✅ Dev mode: {server_config.DEV_MODE}") print(f"✅ Max concurrent jobs: {server_config.MAX_CONCURRENT_JOBS}") print(f"✅ Max upload size: {server_config.MAX_UPLOAD_SIZE_MB}MB") return True except Exception as e: print(f"❌ Config test failed: {e}") return False def test_job_system(): """Test job management system""" print("\nTesting job system...") try: from server.jobs import JobManager, ModelConfiguration # Test singleton jm1 = JobManager.get_instance() jm2 = JobManager.get_instance() assert jm1 is jm2, "JobManager should be singleton" print("✅ JobManager singleton working") # Test model info models = JobManager.get_available_models() print(f"✅ Available models: {len(models)}") # Test default config default_config = JobManager.get_default_model_config() print(f"✅ Default config: {len(default_config.primary_models)} primary models") return True except Exception as e: print(f"❌ Job system test failed: {e}") return False def main(): """Run all tests""" print("🧪 Testing Brief Extractor GUI Setup\n") tests = [ test_imports, test_config, test_job_system ] passed = 0 for test in tests: if test(): passed += 1 print(f"\n📊 Test Results: {passed}/{len(tests)} passed") if passed == len(tests): print("🎉 All tests passed! GUI setup is ready.") print("\n🚀 To start the server:") print(" python run_server.py") print("\n🌐 To start the frontend:") print(" cd frontend && npm install && npm run dev") return True else: print("❌ Some tests failed. Please check the errors above.") return False if __name__ == '__main__': success = main() sys.exit(0 if success else 1)