128 lines
No EOL
3.5 KiB
Python
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) |