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())
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()
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())
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()
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()
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()
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())
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())
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())
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()
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()