Cluster/tests/test_pipeline_editor.py
2025-07-17 17:04:56 +08:00

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()