65 lines
2 KiB
Python
65 lines
2 KiB
Python
import sys
|
|
import unittest
|
|
from unittest.mock import MagicMock
|
|
from pathlib import Path
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parent.parent
|
|
sys.path.append(str(PROJECT_ROOT.parent))
|
|
|
|
# Mock bpy and dependencies for unit testing
|
|
class DummyNodeSocket: pass
|
|
class DummyNode: pass
|
|
class DummyObject:
|
|
def __init__(self, name="TestObj"):
|
|
self.name = name
|
|
|
|
mock_types = MagicMock()
|
|
mock_types.NodeSocket = DummyNodeSocket
|
|
mock_types.Node = DummyNode
|
|
mock_types.Object = DummyObject
|
|
|
|
mock_bpy = MagicMock()
|
|
mock_bpy.context.scene = MagicMock()
|
|
mock_bpy.context.scene.unit_settings.scale_length = 0.001
|
|
mock_bpy.types = mock_types
|
|
|
|
sys.modules['bpy'] = mock_bpy
|
|
sys.modules['bpy.types'] = mock_types
|
|
sys.modules['bpy.props'] = MagicMock()
|
|
sys.modules['bpy.utils'] = MagicMock()
|
|
|
|
from NodeSlicer.infra.blender.blender_mesh_capture import SlicingObject, SlicingCollection, SlicingGroup
|
|
from NodeSlicer.core.nodeslicer.nodes.mesh import _rename_slicing_item
|
|
|
|
|
|
class TestRenameMesh(unittest.TestCase):
|
|
|
|
def test_rename_slicing_object(self):
|
|
so = SlicingObject()
|
|
so.name = "OldName"
|
|
renamed = _rename_slicing_item(so, "NewName")
|
|
self.assertEqual(renamed.name, "NewName")
|
|
|
|
def test_rename_slicing_collection(self):
|
|
so1 = SlicingObject()
|
|
so1.name = "Part1"
|
|
sc = SlicingCollection([], "OldCollection")
|
|
sc.objects = [so1]
|
|
|
|
renamed = _rename_slicing_item(sc, "NewColl")
|
|
self.assertEqual(renamed.name, "NewColl")
|
|
self.assertEqual(renamed.objects[0].name, "NewColl")
|
|
self.assertEqual(renamed.objects[0].parent, "NewColl")
|
|
|
|
def test_rename_slicing_group(self):
|
|
sc = SlicingCollection([], "Coll1")
|
|
sg = SlicingGroup([])
|
|
sg.collections = {"Coll1": sc}
|
|
|
|
renamed = _rename_slicing_item(sg, "NewGroup")
|
|
self.assertIn("NewGroup", renamed.collections)
|
|
self.assertEqual(renamed.collections["NewGroup"].name, "NewGroup")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|