115 lines
3.6 KiB
Python
115 lines
3.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test UI deployment dialog without requiring Kneron SDK.
|
|
This tests the UI deployment flow to verify our fixes work.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
from PyQt5.QtWidgets import QApplication
|
|
from typing import Dict, Any
|
|
|
|
# Add project paths
|
|
project_root = os.path.dirname(os.path.abspath(__file__))
|
|
sys.path.insert(0, project_root)
|
|
|
|
def create_test_pipeline_data() -> Dict[str, Any]:
|
|
"""Create a minimal test pipeline that should work."""
|
|
return {
|
|
'project_name': 'Test Deployment Pipeline',
|
|
'description': 'Testing fixed deployment with result handling',
|
|
'version': '1.0',
|
|
'nodes': [
|
|
{
|
|
'id': 'input_1',
|
|
'name': 'Camera Input',
|
|
'type': 'ExactInputNode',
|
|
'pos': [100, 100],
|
|
'properties': {
|
|
'source_type': 'camera', # lowercase to match WorkflowOrchestrator
|
|
'device_id': 0,
|
|
'resolution': '640x480',
|
|
'fps': 10
|
|
}
|
|
},
|
|
{
|
|
'id': 'model_1',
|
|
'name': 'Test Model',
|
|
'type': 'ExactModelNode',
|
|
'pos': [300, 100],
|
|
'properties': {
|
|
'model_path': '/path/to/test.nef',
|
|
'scpu_fw_path': 'fw_scpu.bin',
|
|
'ncpu_fw_path': 'fw_ncpu.bin',
|
|
'port_ids': [28, 32],
|
|
'upload_fw': True
|
|
}
|
|
},
|
|
{
|
|
'id': 'output_1',
|
|
'name': 'Debug Output',
|
|
'type': 'ExactOutputNode',
|
|
'pos': [500, 100],
|
|
'properties': {
|
|
'output_type': 'console',
|
|
'destination': './debug_output'
|
|
}
|
|
}
|
|
],
|
|
'connections': [
|
|
{
|
|
'input_node': 'input_1',
|
|
'input_port': 'output',
|
|
'output_node': 'model_1',
|
|
'output_port': 'input'
|
|
},
|
|
{
|
|
'input_node': 'model_1',
|
|
'input_port': 'output',
|
|
'output_node': 'output_1',
|
|
'output_port': 'input'
|
|
}
|
|
]
|
|
}
|
|
|
|
def main():
|
|
"""Test the deployment dialog."""
|
|
print("🧪 TESTING UI DEPLOYMENT DIALOG")
|
|
print("=" * 50)
|
|
|
|
app = QApplication(sys.argv)
|
|
|
|
try:
|
|
# Import UI components
|
|
from ui.dialogs.deployment import DeploymentDialog
|
|
|
|
# Create test pipeline data
|
|
pipeline_data = create_test_pipeline_data()
|
|
|
|
print("1. Creating deployment dialog...")
|
|
dialog = DeploymentDialog(pipeline_data)
|
|
|
|
print("2. Showing dialog...")
|
|
print(" - Click 'Analyze Pipeline' to test configuration")
|
|
print(" - Click 'Deploy to Dongles' to test deployment")
|
|
print(" - With our fixes, you should now see result debugging output")
|
|
print(" - Results should appear in the Live View tab")
|
|
|
|
# Show the dialog
|
|
result = dialog.exec_()
|
|
|
|
if result == dialog.Accepted:
|
|
print("✅ Dialog completed successfully")
|
|
else:
|
|
print("❌ Dialog was cancelled")
|
|
|
|
except ImportError as e:
|
|
print(f"❌ Could not import UI components: {e}")
|
|
print("This test needs to run with PyQt5 available")
|
|
except Exception as e:
|
|
print(f"❌ Error testing deployment dialog: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
|
|
if __name__ == "__main__":
|
|
main() |