Program Listing for File MockPipeline.py
↰ Return to documentation for file (Testing/Python/MockPipeline.py)
import sys
from typing import Any
from unittest.mock import MagicMock
from LayerDMLib import vtkMRMLLayerDMScriptedPipeline
from slicer import (
vtkMRMLAbstractViewNode,
vtkMRMLInteractionEventData,
vtkMRMLLayerDMPipelineManager,
vtkMRMLNode,
vtkMRMLScene,
)
from vtk import vtkCamera, vtkRenderer, vtkObject
class MockPipeline(vtkMRMLLayerDMScriptedPipeline):
"""
Mock scripted layer displayable manager pipeline.
Provides mocks for all overridden methods and default behavior following the base scripted pipeline.
"""
def __init__(
self,
renderOrder=0,
widgetState=0,
canProcess=False,
processDistance=sys.float_info.max,
didProcess=False,
mouseCursor=0,
):
super().__init__()
self.mockCanProcess = MagicMock(return_value=(canProcess, processDistance))
self.mockGetCustomCamera = MagicMock(return_value=None)
self.mockGetMouse = MagicMock(return_value=mouseCursor)
self.mockGetRenderOrder = MagicMock(return_value=renderOrder)
self.mockGetWidgetState = MagicMock(return_value=widgetState)
self.mockLoseFocus = MagicMock()
self.mockOnDefaultCameraModified = MagicMock()
self.mockOnReferenceToDisplayNodeAdded = MagicMock()
self.mockOnReferenceToDisplayNodeRemoved = MagicMock()
self.mockOnRendererAdded = MagicMock()
self.mockOnRendererRemoved = MagicMock()
self.mockOnUpdate = MagicMock()
self.mockProcess = MagicMock(return_value=didProcess)
self.mockSetDisplayNode = MagicMock()
self.mockSetViewNode = MagicMock()
self.mockSetScene = MagicMock()
self.mockSetPipelineManager = MagicMock()
self.mockUpdatePipeline = MagicMock()
def CanProcessInteractionEvent(self, eventData: vtkMRMLInteractionEventData) -> tuple[bool, float]:
return self.mockCanProcess(eventData)
def GetCustomCamera(self) -> vtkCamera | None:
return self.mockGetCustomCamera()
def GetMouseCursor(self) -> int:
return self.mockGetMouse()
def GetRenderOrder(self) -> int:
return self.mockGetRenderOrder()
def GetWidgetState(self) -> int:
return self.mockGetWidgetState()
def LoseFocus(self, eventData: vtkMRMLInteractionEventData) -> None:
self.mockLoseFocus(eventData)
def OnDefaultCameraModified(self, camera: vtkCamera) -> None:
self.mockOnDefaultCameraModified(camera)
def OnReferenceToDisplayNodeAdded(self, fromNode: vtkMRMLNode | None, role: str) -> None:
self.mockOnReferenceToDisplayNodeAdded(fromNode, role)
def OnReferenceToDisplayNodeRemoved(self, fromNode: vtkMRMLNode | None, role: str) -> None:
self.mockOnReferenceToDisplayNodeRemoved(fromNode, role)
def OnRendererAdded(self, renderer: vtkRenderer) -> None:
self.mockOnRendererAdded(renderer)
def OnRendererRemoved(self, renderer: vtkRenderer) -> None:
self.mockOnRendererRemoved(renderer)
def OnUpdate(self, obj: vtkObject, eventId: int, callData: Any) -> None:
self.mockOnUpdate(obj, eventId, callData)
def ProcessInteractionEvent(self, eventData: vtkMRMLInteractionEventData) -> bool:
return self.mockProcess(eventData)
def SetDisplayNode(self, displayNode: vtkMRMLNode) -> None:
self.mockSetDisplayNode(displayNode)
super().SetDisplayNode(displayNode)
def SetViewNode(self, viewNode: vtkMRMLAbstractViewNode) -> None:
self.mockSetViewNode(viewNode)
super().SetViewNode(viewNode)
def SetScene(self, scene: vtkMRMLScene) -> None:
self.mockSetScene(scene)
super().SetScene(scene)
def SetPipelineManager(self, pipelineManager: vtkMRMLLayerDMPipelineManager) -> None:
self.mockSetPipelineManager(pipelineManager)
super().SetPipelineManager(pipelineManager)
def UpdatePipeline(self) -> None:
self.mockUpdatePipeline()