Files
manual_slop/tests/test_mma_node_editor.py

52 lines
1.7 KiB
Python

import pytest
from unittest.mock import MagicMock, patch
import sys
from imgui_bundle import imgui_node_editor as ed
def test_imgui_node_editor_import():
assert ed is not None
assert hasattr(ed, "begin_node")
assert hasattr(ed, "end_node")
def test_app_has_node_editor_attrs():
from src.gui_2 import App
# Use patch to avoid initializing the entire App
with patch('src.app_controller.AppController'), \
patch('src.gui_2.immapp.RunnerParams'), \
patch('imgui_bundle.imgui_node_editor.create_editor'):
app = App.__new__(App)
# Manually set what we expect from __init__
app.node_editor_config = ed.Config()
app.node_editor_ctx = ed.create_editor(app.node_editor_config)
app.ui_selected_ticket_id = None
assert hasattr(app, 'node_editor_config')
assert hasattr(app, 'node_editor_ctx')
assert hasattr(app, 'ui_selected_ticket_id')
def test_node_id_stability():
"""Verify that node/pin IDs generated via hash are stable for the same input."""
tid = "T-001"
int_id = abs(hash(tid))
in_pin_id = abs(hash(tid + "_in"))
out_pin_id = abs(hash(tid + "_out"))
# Re-generate and compare
assert int_id == abs(hash(tid))
assert in_pin_id == abs(hash(tid + "_in"))
assert out_pin_id == abs(hash(tid + "_out"))
# Verify uniqueness
assert int_id != in_pin_id
assert int_id != out_pin_id
assert in_pin_id != out_pin_id
def test_link_id_stability():
"""Verify that link IDs are stable."""
source_tid = "T-001"
target_tid = "T-002"
link_id = abs(hash(source_tid + "_" + target_tid))
assert link_id == abs(hash(source_tid + "_" + target_tid))
assert link_id != abs(hash(target_tid + "_" + source_tid))