95 lines
2.4 KiB
Python
95 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test script to verify the pipeline editor functionality.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
# Set up Qt environment
|
|
os.environ['QT_QPA_PLATFORM'] = 'offscreen'
|
|
|
|
from PyQt5.QtWidgets import QApplication
|
|
from PyQt5.QtCore import QTimer
|
|
|
|
# Create Qt application
|
|
app = QApplication(sys.argv)
|
|
|
|
# Import after Qt setup
|
|
from ui.windows.pipeline_editor import PipelineEditor
|
|
|
|
|
|
def test_pipeline_editor():
|
|
"""Test the pipeline editor functionality."""
|
|
print("Testing Pipeline Editor...")
|
|
|
|
# Create editor
|
|
editor = PipelineEditor()
|
|
|
|
# Test initial state
|
|
initial_count = editor.get_current_stage_count()
|
|
print(f"Initial stage count: {initial_count}")
|
|
assert initial_count == 0, f"Expected 0 stages initially, got {initial_count}"
|
|
|
|
# Test adding nodes (if NodeGraphQt is available)
|
|
if hasattr(editor, 'node_graph') and editor.node_graph:
|
|
print("NodeGraphQt is available, testing node addition...")
|
|
|
|
# Add input node
|
|
editor.add_input_node()
|
|
|
|
# Add model node
|
|
editor.add_model_node()
|
|
|
|
# Add output node
|
|
editor.add_output_node()
|
|
|
|
# Wait for analysis to complete
|
|
QTimer.singleShot(1000, lambda: check_final_count(editor))
|
|
|
|
# Run event loop briefly
|
|
QTimer.singleShot(1500, app.quit)
|
|
app.exec_()
|
|
|
|
else:
|
|
print("NodeGraphQt not available, skipping node addition tests")
|
|
|
|
print("✓ Pipeline editor test completed")
|
|
|
|
|
|
def check_final_count(editor):
|
|
"""Check final stage count after adding nodes."""
|
|
final_count = editor.get_current_stage_count()
|
|
print(f"Final stage count: {final_count}")
|
|
|
|
if final_count == 1:
|
|
print("✓ Stage count correctly updated to 1")
|
|
else:
|
|
print(f"❌ Expected 1 stage, got {final_count}")
|
|
|
|
# Get pipeline summary
|
|
summary = editor.get_pipeline_summary()
|
|
print(f"Pipeline summary: {summary}")
|
|
|
|
|
|
def main():
|
|
"""Run all tests."""
|
|
print("Running Pipeline Editor Tests...")
|
|
print("=" * 50)
|
|
|
|
try:
|
|
test_pipeline_editor()
|
|
|
|
print("\n" + "=" * 50)
|
|
print("All tests completed! ✓")
|
|
|
|
except Exception as e:
|
|
print(f"\n❌ Test failed: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |