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)
コード例 #2
0
 def get_item_model(self):
     return (MatrixWorkspaceTableViewModel(
         self._ws, MatrixWorkspaceTableViewModelType.x),
             MatrixWorkspaceTableViewModel(
                 self._ws, MatrixWorkspaceTableViewModelType.y),
             MatrixWorkspaceTableViewModel(
                 self._ws, MatrixWorkspaceTableViewModelType.e))
 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))
 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_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_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_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))
 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_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 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 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)
    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 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)
    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)
    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 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 _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)
    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 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_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())
 def test_invalid_model_type(self):
     ws = MockWorkspace()
     with self.assertRaises(AssertionError):
         MatrixWorkspaceTableViewModel(ws, "My Model Type")