test_preview.py 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import pytest
  2. from unittest.mock import patch, MagicMock
  3. from preview_utils import generate_stl_preview
  4. def test_generate_stl_preview_success():
  5. with patch("stl.mesh.Mesh.from_file") as mock_from_file, \
  6. patch("matplotlib.pyplot.figure") as mock_figure, \
  7. patch("matplotlib.pyplot.savefig") as mock_savefig, \
  8. patch("matplotlib.pyplot.close") as mock_close:
  9. # Setup mocks
  10. mock_mesh = MagicMock()
  11. mock_mesh.vectors = []
  12. mock_mesh.points.flatten.return_value = []
  13. mock_from_file.return_value = mock_mesh
  14. mock_fig_instance = MagicMock()
  15. mock_figure.return_value = mock_fig_instance
  16. result = generate_stl_preview("test.stl", "output.png")
  17. assert result is True
  18. mock_from_file.assert_called_once_with("test.stl")
  19. mock_savefig.assert_called_once()
  20. mock_close.assert_called_once()
  21. def test_generate_stl_preview_failure():
  22. with patch("stl.mesh.Mesh.from_file", side_effect=Exception("File error")):
  23. result = generate_stl_preview("test.stl", "output.png")
  24. assert result is False