コード例 #1
0
 def test_presenter_close_called_correctly_on_view_close(self):
     """
     Check that the presenter's close function is called with the workspace name so that
     the manager can remove it correctly.
     """
     ws = CreateSampleWorkspace(OutputWorkspace="my_workspace")
     mock_presenter = mock.MagicMock()
     instrument_view = InstrumentView(parent=None,
                                      presenter=mock_presenter,
                                      name=ws.name())
     instrument_view.close()
     mock_presenter.close.assert_called_once_with(ws.name())
コード例 #2
0
    def test_window_deleted_correctly(self):
        ws = CreateSampleWorkspace()
        LoadInstrument(ws, InstrumentName='MARI', RewriteSpectraMap=False)

        p = InstrumentViewPresenter(ws)
        self.assert_widget_created()

        p.close(ws.name())

        QApplication.processEvents()
        self.assertEqual(None, p.ads_observer)
        self.assert_widget_not_present("instr")
        self.assert_no_toplevel_widgets()
コード例 #3
0
class MatrixWorkspaceDisplayDecoderTest(GuiTest):
    def setUp(self):
        self.ws = CreateSampleWorkspace(OutputWorkspace="ws")
        self.decoder = MatrixWorkspaceDisplayDecoder()

    def test_decoder_returns_view(self):
        decoded_object = self.decoder.decode(MATRIXWORKSPACEDISPLAY_DICT)
        self.assertEqual(decoded_object.__class__, StatusBarView)
        self.assertEqual(decoded_object.presenter.__class__, MatrixWorkspaceDisplay)

    def test_decoder_returns_workspace(self):
        view = self.decoder.decode(MATRIXWORKSPACEDISPLAY_DICT)
        self.assertEqual(self.ws.name(), view.presenter.model._ws.name())
コード例 #4
0
    def test_window_deleted_correctly(self):
        ws = CreateSampleWorkspace()

        p = MatrixWorkspaceDisplay(ws)
        self.assert_widget_created()
        p.close(ws.name())

        self.assert_widget_created()

        QApplication.sendPostedEvents()

        self.assertEqual(None, p.ads_observer)
        self.assert_widget_not_present("work")
        self.assert_no_toplevel_widgets()
コード例 #5
0
    def test_window_deleted_correctly(self):
        ws = CreateSampleWorkspace()

        p = MatrixWorkspaceDisplay(ws)
        self.assert_window_created()
        p.close(ws.name())

        self.assert_window_created()

        QApplication.processEvents()

        self.assertEqual(None, p.ads_observer)
        self.find_qt_widget("work")
        self.assert_no_widgets()
コード例 #6
0
    def test_window_deleted_correctly(self):
        ws = CreateSampleWorkspace()

        p = MatrixWorkspaceDisplay(ws)
        self.assert_widget_created()
        p.close(ws.name())

        self.assert_widget_created()

        QApplication.processEvents()

        self.assertEqual(None, p.ads_observer)
        self.assert_widget_not_present("work")
        self.assert_no_toplevel_widgets()
コード例 #7
0
    def test_context_menu_correctly_disables_and_enables_overplot_options(self, mock_can_overplot):
        mock_can_overplot.return_value = False
        ws = CreateSampleWorkspace()
        mock_plot = mock.MagicMock()
        presenter = MatrixWorkspaceDisplay(ws, plot=mock_plot)
        view = presenter.view
        table = view.currentWidget()

        context_menu = view.setup_bin_context_menu(table)
        actions = context_menu.actions()
        self.assertEqual(actions[6].isEnabled(), False)
        self.assertEqual(actions[7].isEnabled(), False)

        mock_can_overplot.return_value = True
        context_menu = view.setup_bin_context_menu(table)
        actions = context_menu.actions()
        self.assertEqual(actions[6].isEnabled(), True)
        self.assertEqual(actions[7].isEnabled(), True)

        presenter.close(ws.name())
コード例 #8
0
    def test_context_has_expected_function_when_overplotting(self, mock_can_overplot):
        mock_can_overplot.return_value = True
        ws = CreateSampleWorkspace()
        mock_plot = mock.MagicMock()
        presenter = MatrixWorkspaceDisplay(ws, plot=mock_plot)
        view = presenter.view
        table = view.currentWidget()
        table.selectColumn(1)

        context_menu = view.setup_bin_context_menu(table)
        actions = context_menu.actions()

        # check triggering action 6 & 7 calls plot
        actions[6].trigger()
        presenter.plot.assert_called_with(mock.ANY, wksp_indices=mock.ANY, errors=False,
                                          overplot=True, plot_kwargs=mock.ANY)
        actions[7].trigger()
        presenter.plot.assert_called_with(mock.ANY, wksp_indices=mock.ANY, errors=True,
                                          overplot=True, plot_kwargs=mock.ANY)
        presenter.close(ws.name())
コード例 #9
0
    def test_context_has_expected_function_when_plotting(self):
        ws = CreateSampleWorkspace()
        mock_plot = mock.MagicMock()
        presenter = MatrixWorkspaceDisplay(ws, plot=mock_plot)
        view = presenter.view
        table = view.currentWidget()
        table.selectColumn(1)

        context_menu = view.setup_bin_context_menu(table)
        actions = context_menu.actions()
        # check we have 8 actions 2 separators - 2 copy - 2plot - 2 overplot
        self.assertEqual(len(actions), 8)

        # check triggering action 4 & 5 calls plot
        actions[3].trigger()
        presenter.plot.assert_called_with(mock.ANY, wksp_indices=mock.ANY, errors=False,
                                          overplot=False, plot_kwargs=mock.ANY)
        actions[4].trigger()
        presenter.plot.assert_called_with(mock.ANY, wksp_indices=mock.ANY, errors=True,
                                          overplot=False, plot_kwargs=mock.ANY)
        presenter.close(ws.name())
コード例 #10
0
    def test_select_and_get_tab(self):
        """Test launch and close instrument view with ARCS data
        """
        # create workspace
        ws = CreateSampleWorkspace()
        LoadInstrument(ws, InstrumentName='ARCS', RewriteSpectraMap=False)

        # No Qt widgets so far
        self.assert_no_toplevel_widgets()

        # create instrument view presenter
        iv_presenter = InstrumentViewPresenter(ws,
                                               parent=None,
                                               ads_observer=None)
        self.assert_widget_created()

        # select pick tab
        iv_presenter.select_pick_tab()
        current_tab_index = iv_presenter.container.widget.getCurrentTab()
        assert current_tab_index == 1
        pick_tab = iv_presenter.get_pick_tab()
        assert pick_tab

        # render tab
        iv_presenter.select_render_tab()
        current_tab_index = iv_presenter.container.widget.getCurrentTab()
        assert current_tab_index == 0
        render_tab = iv_presenter.get_render_tab()
        assert render_tab

        # set TOF bin range
        iv_presenter.set_bin_range(1000, 12000)

        # close
        iv_presenter.close(ws.name())
        # process events to close all the widgets
        QApplication.processEvents()
        # asset no more widgets
        self.assert_no_toplevel_widgets()
コード例 #11
0
    def test_render_tab(self):
        """Test setting view and setting axis in the render tab
        """
        # create workspace
        ws = CreateSampleWorkspace()
        LoadInstrument(ws, InstrumentName='ARCS', RewriteSpectraMap=False)

        # create instrument view presenter
        iv_presenter = InstrumentViewPresenter(ws,
                                               parent=None,
                                               ads_observer=None)
        self.assert_widget_created()

        # get render tab
        render_tab = iv_presenter.get_render_tab()
        assert render_tab

        # select projection
        render_tab.setSurfaceType(InstrumentWidget.CYLINDRICAL_X)
        render_tab.setSurfaceType(InstrumentWidget.FULL3D)

        # select axis under Full3D
        render_tab.setAxis('Y+')

        # disable autoscaling
        render_tab.setColorMapAutoscaling(False)

        # set min and max value to color bar
        render_tab.setMinValue(10, False)
        render_tab.setMaxValue(40, False)

        # close
        iv_presenter.close(ws.name())
        # process events to close all the widgets
        QApplication.processEvents()
        # asset no more widgets
        self.assert_no_toplevel_widgets()