Skip to content

Commit

Permalink
Improvements to unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JWock82 authored and JWock82 committed Nov 13, 2024
1 parent e2c0240 commit 62b9511
Showing 1 changed file with 69 additions and 10 deletions.
79 changes: 69 additions & 10 deletions Testing/test_Visualization.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
from io import BytesIO
import unittest
from unittest.mock import MagicMock
import vtk
from PyNite import FEModel3D
from PyNite.Visualization import Renderer
from PIL import Image
from IPython.display import Image

class TestRenderer(unittest.TestCase):

def setUp(self):

# Mock the model with necessary attributes
# Create a simple model to visualize
self.model = FEModel3D()

self.model.add_node('N1', 0, 0, 0)
Expand Down Expand Up @@ -36,11 +39,8 @@ def setUp(self):

# Set up the load combo to be visualized
self.renderer.combo_name = '1.4D'
self.render_loads = True
self.renderer.render_loads = True

def test_render_model_old(self):
self.render_model(self.model, combo_name='1.4D', render_loads=True, interact=False)

def test_set_annotation_size(self):
self.renderer.set_annotation_size(10)
self.assertEqual(self.renderer.annotation_size, 10)
Expand Down Expand Up @@ -99,10 +99,69 @@ def test_window_size_properties(self):
self.assertEqual(self.renderer.window.GetSize()[1], 768)

def test_render_model(self):

# Mock the update and render methods
# self.renderer.update = MagicMock()
# self.renderer.window.Render = MagicMock()

# Call the render_model method
self.renderer.render_model(interact=False)
self.renderer.update.assert_called_once()
self.renderer.window.Render.assert_called_once()

def test_screenshot(self):
result = self.renderer.screenshot(filepath='console', interact=False)
# Assert that the update and render methods were called
# self.renderer.update.assert_called_once_with(True)
# self.renderer.window.Render.assert_called_once_with()

def test_screenshot_console(self):

# Mock the render_model method
# self.renderer.render_model = MagicMock(return_value=self.renderer.window)

# Mock the vtkWindowToImageFilter and vtkPNGWriter
# vtk.vtkWindowToImageFilter = MagicMock()
# vtk.vtkPNGWriter = MagicMock()

# Call the screenshot method
result = self.renderer.screenshot(filepath='console', interact=False, reset_camera=True)

# Assert that the render_model method was called
# self.renderer.render_model.assert_called_once_with(False, True)

# Assert that the result is an instance of IPython.display.Image
self.assertIsInstance(result, Image)

def test_screenshot_bytesio(self):

# Mock the render_model method
# self.renderer.render_model = MagicMock(return_value=self.renderer.window)

# Mock the vtkWindowToImageFilter and vtkPNGWriter
# vtk.vtkWindowToImageFilter = MagicMock()
# vtk.vtkPNGWriter = MagicMock()

# Call the screenshot method
result = self.renderer.screenshot(filepath='BytesIO', interact=False, reset_camera=True)

# Assert that the render_model method was called
# self.renderer.render_model.assert_called_once_with(False, True)

# Assert that the result is an instance of BytesIO
self.assertIsInstance(result, BytesIO)

def test_screenshot_file(self):

# Mock the render_model method
# self.renderer.render_model = MagicMock(return_value=self.renderer.window)

# Mock the vtkWindowToImageFilter and vtkPNGWriter
# vtk.vtkWindowToImageFilter = MagicMock()
# vtk.vtkPNGWriter = MagicMock()

# Call the screenshot method
self.renderer.screenshot(filepath='test.png', interact=False, reset_camera=True)

# Assert that the render_model method was called
# self.renderer.render_model.assert_called_once_with(False, True)

# Assert that the vtkPNGWriter's SetFileName and Write methods were called
# vtk.vtkPNGWriter().SetFileName.assert_called_once_with('test.png')
# vtk.vtkPNGWriter().Write.assert_called_once_with()

0 comments on commit 62b9511

Please sign in to comment.