コード例 #1
0
    def test_get_name(self):
        ws = MockWorkspace()
        expected_name = "TEST_WORKSPACE"
        ws.name = Mock(return_value=expected_name)
        model = TableWorkspaceDisplayModel(ws)

        self.assertEqual(expected_name, model.get_name())
コード例 #2
0
    def test_no_raise_with_supported_workspace(self):
        ws = MockWorkspace()
        expected_name = "TEST_WORKSPACE"
        ws.name = Mock(return_value=expected_name)

        # no need to assert anything - if the constructor raises the test will fail
        MatrixWorkspaceDisplayModel(ws)

        ws = CreateSampleWorkspace(NumBanks=1, BankPixelWidth=4, NumEvents=10)
        MatrixWorkspaceDisplayModel(ws)
コード例 #3
0
    def test_no_raise_with_supported_workspace(self):
        from mantid.simpleapi import CreateEmptyTableWorkspace
        ws = MockWorkspace()
        expected_name = "TEST_WORKSPACE"
        ws.name = Mock(return_value=expected_name)

        # no need to assert anything - if the constructor raises the test will fail
        TableWorkspaceDisplayModel(ws)

        ws = CreateEmptyTableWorkspace()
        TableWorkspaceDisplayModel(ws)
コード例 #4
0
    def test_get_item_model(self):
        ws = MockWorkspace()
        expected_name = "TEST_WORKSPACE"
        ws.name = Mock(return_value=expected_name)
        model = MatrixWorkspaceDisplayModel(ws)

        x_model, y_model, e_model = model.get_item_model()

        self.assertEqual(x_model.type, MatrixWorkspaceTableViewModelType.x)
        self.assertEqual(y_model.type, MatrixWorkspaceTableViewModelType.y)
        self.assertEqual(e_model.type, MatrixWorkspaceTableViewModelType.e)
    def test_not_common_bins_horizontal_tooltip_role(self):
        mock_section = 0
        mock_return_values = [0, 1, 2, 3, 4, 5, 6]
        is_histogram_data = False

        ws = MockWorkspace(read_return=mock_return_values, isHistogramData=is_histogram_data)
        ws.isCommonBins = Mock(return_value=False)
        model_type = MatrixWorkspaceTableViewModelType.y
        model = MatrixWorkspaceTableViewModel(ws, model_type)
        output = model.headerData(mock_section, Qt.Horizontal, Qt.ToolTipRole)

        self.assertEqual(MatrixWorkspaceTableViewModel.HORIZONTAL_BINS_VARY_TOOLTIP_STRING.format(mock_section), output)
 def _check_correct_data_is_displayed(self, model_type, column, mock_data, row):
     ws = MockWorkspace(read_return=mock_data)
     model = MatrixWorkspaceTableViewModel(ws, model_type)
     index = MockQModelIndex(row, column)
     output = model.data(index, Qt.DisplayRole)
     model.relevant_data.assert_called_once_with(row)
     self.assertEqual(str(mock_data[column]), output)
 def test_row_and_column_count(self):
     ws = MockWorkspace()
     model_type = MatrixWorkspaceTableViewModelType.x
     MatrixWorkspaceTableViewModel(ws, model_type)
     # these are called when the TableViewModel is initialised
     ws.getNumberHistograms.assert_called_once_with()
     ws.blocksize.assert_called_once_with()
 def test_headerData_not_display_or_tooltip(self):
     if not qtpy.PYQT5:
         self.skipTest("QVariant cannot be instantiated in QT4, and the test fails with an error.")
     ws = MockWorkspace()
     model_type = MatrixWorkspaceTableViewModelType.x
     model = MatrixWorkspaceTableViewModel(ws, model_type)
     output = model.headerData(0, Qt.Vertical, Qt.BackgroundRole)
     self.assertTrue(isinstance(output, QtCore.QVariant))
コード例 #9
0
 def test_setup_table(self):
     ws = MockWorkspace()
     view = MockMatrixWorkspaceDisplayView()
     container = Mock(spec=StatusBarView)
     container.status_bar = Mock(spec=QStatusBar)
     MatrixWorkspaceDisplay(ws, view=view, container=container)
     self.assertEqual(3, view.set_context_menu_actions.call_count)
     self.assertEqual(1, view.set_model.call_count)
 def test_correct_relevant_data(self):
     ws = MockWorkspace()
     model = MatrixWorkspaceTableViewModel(ws, MatrixWorkspaceTableViewModelType.x)
     msg = "The function is not set correctly! The wrong data will be read."
     self.assertEqual(ws.readX, model.relevant_data, msg=msg)
     model = MatrixWorkspaceTableViewModel(ws, MatrixWorkspaceTableViewModelType.y)
     self.assertEqual(ws.readY, model.relevant_data, msg=msg)
     model = MatrixWorkspaceTableViewModel(ws, MatrixWorkspaceTableViewModelType.e)
     self.assertEqual(ws.readE, model.relevant_data, msg=msg)
 def test_headerData_horizontal_header_display_role_for_X_values(self):
     ws = MockWorkspace()
     model_type = MatrixWorkspaceTableViewModelType.x
     model = MatrixWorkspaceTableViewModel(ws, model_type)
     mock_section = 0
     output = model.headerData(mock_section, Qt.Horizontal, Qt.DisplayRole)
     expected_output = MatrixWorkspaceTableViewModel.HORIZONTAL_HEADER_DISPLAY_STRING_FOR_X_VALUES.format(
         mock_section)
     self.assertEqual(expected_output, output)
    def test_correct_model_type(self):
        ws = MockWorkspace()
        model = MatrixWorkspaceTableViewModel(ws, MatrixWorkspaceTableViewModelType.x)
        self.assertEqual(model.type, MatrixWorkspaceTableViewModelType.x)

        model = MatrixWorkspaceTableViewModel(ws, MatrixWorkspaceTableViewModelType.y)
        self.assertEqual(model.type, MatrixWorkspaceTableViewModelType.y)

        model = MatrixWorkspaceTableViewModel(ws, MatrixWorkspaceTableViewModelType.e)
        self.assertEqual(model.type, MatrixWorkspaceTableViewModelType.e)
コード例 #13
0
 def wrapper(self, *args):
     ws = MockWorkspace()
     view = MockMatrixWorkspaceDisplayView()
     mock_observer = Mock()
     container = Mock(spec=StatusBarView)
     container.status_bar = Mock(spec=QStatusBar)
     presenter = MatrixWorkspaceDisplay(ws,
                                        view=view,
                                        ads_observer=mock_observer,
                                        container=container)
     return func(self, ws, view, presenter, *args)
    def test_headerData_vertical_header_tooltip_role(self):
        ws = MockWorkspace()
        model_type = MatrixWorkspaceTableViewModelType.x
        model = MatrixWorkspaceTableViewModel(ws, model_type)
        mock_section = 0
        output = model.headerData(mock_section, Qt.Vertical, Qt.ToolTipRole)

        ws.getSpectrum.assert_called_once_with(mock_section)
        ws.mock_spectrum.getSpectrumNo.assert_called_once_with()

        expected_output = MatrixWorkspaceTableViewModel.VERTICAL_HEADER_TOOLTIP_STRING.format(mock_section,
                                                                                              MockSpectrum.TEST_SPECTRUM_NO)
        self.assertEqual(expected_output, output)
def setup_common_for_test_data():
    """
    Common configuration of variables and mocking for testing
    MatrixWorkspaceDisplayTableViewModel's data and headerData functions
    """
    # Create some mock data for the mock workspace
    row = 2
    column = 2
    # make a workspace with 0s
    mock_data = [0] * 10
    # set one of them to be not 0
    mock_data[column] = 999
    model_type = MatrixWorkspaceTableViewModelType.x
    # pass onto the MockWorkspace so that it returns it when read from the TableViewModel
    ws = MockWorkspace(read_return=mock_data)
    ws.hasMaskedBins = Mock(return_value=True)
    ws.maskedBinsIndices = Mock(return_value=[column])
    model = MatrixWorkspaceTableViewModel(ws, model_type)
    # The model retrieves the spectrumInfo object, and our MockWorkspace has already given it
    # the MockSpectrumInfo, so all that needs to be done here is to set up the correct method Mocks
    model.ws_spectrum_info.hasDetectors = Mock(return_value=True)
    index = MockQModelIndex(row, column)
    return ws, model, row, index
    def test_headerData_vertical_header_display_role(self):
        ws = MockWorkspace()
        model_type = MatrixWorkspaceTableViewModelType.x
        model = MatrixWorkspaceTableViewModel(ws, model_type)
        mock_section = 0
        output = model.headerData(mock_section, Qt.Vertical, Qt.DisplayRole)

        ws.getAxis.assert_called_once_with(AXIS_INDEX_FOR_VERTICAL)
        ws.mock_axis.label.assert_called_once_with(mock_section)

        expected_output = MatrixWorkspaceTableViewModel.VERTICAL_HEADER_DISPLAY_STRING.format(mock_section,
                                                                                              MockMantidAxis.TEST_LABEL)

        self.assertEqual(expected_output, output)
コード例 #17
0
 def wrapper(self, *args):
     ws = MockWorkspace()
     view = Mock(spec=TableWorkspaceDisplayView)
     container = Mock(spec=StatusBarView)
     container.status_bar = Mock(spec=QStatusBar)
     if add_selection_model:
         mock_selection_model = MockQSelectionModel(has_selection=True)
         mock_selection_model.selectedRows = Mock(
             return_value=[MockQModelIndex(1, 1), MockQModelIndex(2, 2), MockQModelIndex(3, 3)])
         mock_selection_model.selectedColumns = Mock(
             return_value=[MockQModelIndex(1, 1), MockQModelIndex(2, 2), MockQModelIndex(3, 3)])
         view.mock_selection_model = mock_selection_model
         view.selectionModel.return_value = mock_selection_model
     twd = TableWorkspaceDisplay(ws, view=view, container=container)
     if add_plot:
         twd.plot = MockPlotLib()
     return func(self, ws, view, twd, *args)
    def _run_test_headerData_horizontal_header_display_role(self, is_histogram_data, mock_return_values, mock_section,
                                                            expected_bin_centre):
        ws = MockWorkspace(read_return=mock_return_values, isHistogramData=is_histogram_data)
        model_type = MatrixWorkspaceTableViewModelType.y
        model = MatrixWorkspaceTableViewModel(ws, model_type)
        output = model.headerData(mock_section, Qt.Horizontal, Qt.DisplayRole)

        ws.isHistogramData.assert_called_once_with()
        ws.readX.assert_called_once_with(0)
        ws.getAxis.assert_called_once_with(AXIS_INDEX_FOR_HORIZONTAL)
        ws.mock_axis.getUnit.assert_called_once_with()
        ws.mock_axis.mock_unit.symbol.assert_called_once_with()
        ws.mock_axis.mock_unit.mock_symbol.utf8.assert_called_once_with()
        expected_output = MatrixWorkspaceTableViewModel \
            .HORIZONTAL_HEADER_DISPLAY_STRING \
            .format(mock_section, expected_bin_centre, MockMantidSymbol.TEST_UTF8)
        self.assertEqual(expected_output, output)
コード例 #19
0
    def common_setup_action_plot(self, table_has_selection=True):
        mock_ws = MockWorkspace()
        mock_view = MockMatrixWorkspaceDisplayView()
        mock_plotter = Mock()
        container = Mock(spec=StatusBarView)
        container.status_bar = Mock(spec=QStatusBar)
        presenter = MatrixWorkspaceDisplay(mock_ws,
                                           plot=mock_plotter,
                                           view=mock_view,
                                           container=container)

        # monkey-patch the spectrum plot label to count the number of calls
        presenter.model.get_spectrum_plot_label = Mock()
        presenter.model.get_bin_plot_label = Mock()

        mock_table = MockQTableView()
        # configure the mock return values
        mock_table.mock_selection_model.hasSelection = Mock(
            return_value=table_has_selection)
        return mock_plotter, mock_table, mock_view, presenter
    def test_histogram_data_has_one_extra_x_column(self):
        """
        Test that an extra column is added if the workspace is HistogramData. This is the column that
        contains the right boundary for the last bin.
        """
        mock_data = [1, 2, 3, 4, 5, 6, 7]
        data_len = len(mock_data)
        ws = MockWorkspace(read_return=mock_data, isHistogramData=True)

        model_type = MatrixWorkspaceTableViewModelType.x
        model = MatrixWorkspaceTableViewModel(ws, model_type)

        self.assertEqual(data_len + 1, model.columnCount())

        # test that it is not added to Y and E
        model_type = MatrixWorkspaceTableViewModelType.y
        model = MatrixWorkspaceTableViewModel(ws, model_type)

        self.assertEqual(data_len, model.columnCount())

        model_type = MatrixWorkspaceTableViewModelType.e
        model = MatrixWorkspaceTableViewModel(ws, model_type)

        self.assertEqual(data_len, model.columnCount())
 def test_correct_cell_colors(self):
     ws = MockWorkspace()
     model = MatrixWorkspaceTableViewModel(ws, MatrixWorkspaceTableViewModelType.x)
     self.assertEqual((240, 240, 240, 255), model.masked_color.getRgb())
     self.assertEqual((255, 253, 209, 255), model.monitor_color.getRgb())
コード例 #22
0
 def wrapper(self):
     ws = MockWorkspace()
     model = TableWorkspaceDisplayModel(ws)
     return func(self, model)
コード例 #23
0
 def test_supports(self):
     ws = MockWorkspace()
     # the test will fail if the support check fails - an exception is raised
     TableWorkspaceDisplay.supports(ws)
 def test_invalid_model_type(self):
     ws = MockWorkspace()
     with self.assertRaises(AssertionError):
         MatrixWorkspaceTableViewModel(ws, "My Model Type")