Files
PozzettiAndrea-ComfyUI-Geom…/tests/test_scripts/test_io.py
T
2025-11-14 21:50:06 +01:00

67 lines
2.0 KiB
Python

"""Tests for I/O nodes (LoadMesh, SaveMesh)."""
import pytest
from pathlib import Path
from nodes.io import LoadMesh, SaveMesh
@pytest.mark.unit
def test_load_mesh_stl(bunny_mesh, render_helper, save_mesh_helper):
"""Test loading STL file."""
if bunny_mesh is None:
pytest.skip("Stanford_Bunny.stl not found in assets")
node = LoadMesh()
mesh = node.load_mesh(file_path="Stanford_Bunny.stl")[0]
assert mesh is not None
assert mesh.vertices.shape[0] > 0
assert mesh.faces.shape[0] > 0
save_mesh_helper(mesh, "loaded_bunny", "obj")
render_helper(mesh, "loaded_bunny")
@pytest.mark.unit
def test_save_mesh_obj(cube_mesh, meshes_output_dir):
"""Test saving mesh to OBJ format."""
node = SaveMesh()
status = node.save_mesh(trimesh=cube_mesh, file_path="test_cube.obj")[0]
assert "successfully" in status.lower()
assert (meshes_output_dir / "test_cube.obj").exists()
@pytest.mark.unit
def test_save_mesh_ply(sphere_mesh, meshes_output_dir):
"""Test saving mesh to PLY format."""
node = SaveMesh()
status = node.save_mesh(trimesh=sphere_mesh, file_path="test_sphere.ply")[0]
assert "successfully" in status.lower()
assert (meshes_output_dir / "test_sphere.ply").exists()
@pytest.mark.unit
@pytest.mark.parametrize("format", ["obj", "ply", "stl", "off"])
def test_save_load_cycle(cube_mesh, meshes_output_dir, format):
"""Test save/load cycle for different formats."""
save_node = SaveMesh()
load_node = LoadMesh()
filename = f"cycle_test.{format}"
# Save to output directory
save_node.save_mesh(trimesh=cube_mesh, file_path=filename)
# Load from output directory (files are saved there)
from pathlib import Path
saved_path = meshes_output_dir / filename
if not saved_path.exists():
pytest.skip(f"File {filename} was not saved correctly")
loaded_mesh = load_node.load_mesh(file_path=str(saved_path))[0]
assert loaded_mesh is not None
assert loaded_mesh.vertices.shape[0] > 0
assert loaded_mesh.faces.shape[0] > 0