nodeslicer/tests/test_wipe_tower.py
2026-07-20 19:19:20 +03:00

44 lines
1.5 KiB
Python

import unittest
import numpy as np
from pathlib import Path
import tempfile
import os
import sys
PROJECT_ROOT = Path(__file__).resolve().parent.parent
sys.path.append(str(PROJECT_ROOT))
from NodeSlicer.core.nodeslicer.nodes.inputs import SLICENODE_WipeTower
from NodeSlicer.infra.prusaslicer_profiles.models import ConfigWriter
from NodeSlicer.infra.blender.blender_mesh_capture import SlicingGroup
class TestWipeTowerNode(unittest.TestCase):
def test_wipe_tower_node_output(self):
node = SLICENODE_WipeTower()
node.resolve = lambda key: 180.5 if key == "Position X" else 135.2
res = node.evaluate_output("Settings")
self.assertIn("wipe_tower_position", res)
self.assertEqual(res["wipe_tower_position"], (180.5, 135.2))
def test_config_writer_excludes_wipe_tower_position(self):
conf = {
"layer_height": "0.2",
"wipe_tower_position": "(180.5, 135.2)",
"nozzle_diameter": "0.4"
}
writer = ConfigWriter(conf)
with tempfile.TemporaryDirectory() as temp_dir:
ini_path = Path(temp_dir) / "Slic3r_PE.config"
writer.write_ini_3mf(ini_path)
with open(ini_path, 'r', encoding='utf-8') as f:
content = f.read()
self.assertIn("; layer_height = 0.2", content)
self.assertIn("; nozzle_diameter = 0.4", content)
self.assertNotIn("wipe_tower_position", content)
if __name__ == "__main__":
unittest.main()