示例#1
0
def _create_presenter(model: SliceViewerModel, view, mock_sliceinfo_cls,
                      enable_nonortho_axes, supports_nonortho):
    data_view_mock = view.data_view
    data_view_mock.plot_MDH = mock.Mock()
    presenter = SliceViewer(None, model=model, view=view)
    # Patch out things from the base presenter
    presenter.show_all_data_clicked = mock.Mock()

    if enable_nonortho_axes:
        data_view_mock.nonorthogonal_mode = True
        data_view_mock.nonortho_transform = mock.MagicMock(
            NonOrthogonalTransform)
        data_view_mock.nonortho_transform.tr.return_value = (0, 1)
        presenter.nonorthogonal_axes(True)
    else:
        data_view_mock.nonorthogonal_mode = False
        data_view_mock.nonortho_transform = None

    data_view_mock.disable_tool_button.reset_mock()
    data_view_mock.create_axes_orthogonal.reset_mock()
    data_view_mock.create_axes_nonorthogonal.reset_mock()
    mock_sliceinfo_instance = mock_sliceinfo_cls.return_value
    mock_sliceinfo_instance.can_support_nonorthogonal_axes.return_value = supports_nonortho

    return presenter, data_view_mock
示例#2
0
    def test_non_orthogonal_axes_toggled_on(self):
        self.patched_deps[
            "WorkspaceInfo"].get_ws_type.return_value = WS_TYPE.MDE
        self.patched_deps[
            "Dimensions"].return_value.get_dim_limits.return_value = ((-1, 1),
                                                                      (-2, 2))
        data_view_mock = self.view.data_view
        data_view_mock.plot_MDH = mock.Mock()

        presenter = SliceViewer(None, model=self.model, view=self.view)
        presenter.show_all_data_clicked = mock.Mock()
        presenter.new_plot = mock.Mock()
        data_view_mock.plot_MDH.reset_mock()  # clear initial plot call
        data_view_mock.create_axes_orthogonal.reset_mock()

        presenter.nonorthogonal_axes(True)

        data_view_mock.deactivate_and_disable_tool.assert_called_once_with(
            ToolItemText.REGIONSELECTION)
        data_view_mock.create_axes_nonorthogonal.assert_called_once()
        data_view_mock.create_axes_orthogonal.assert_not_called()
        data_view_mock.disable_tool_button.assert_has_calls(
            [mock.call(ToolItemText.LINEPLOTS)])
        presenter.show_all_data_clicked.assert_called_once()
        presenter.new_plot.assert_called_once()