adi-o3-multipass/test_setup.py

128 lines
No EOL
3.5 KiB
Python

#!/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)