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_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_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_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.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 _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 test_headerData_vertical_header_display_for_numeric_axis_with_point_data( self): dummy_unit = 'unit' ws = MockWorkspace() mock_axis = Mock() mock_axis.isNumeric.return_value = True expected_value = 0. mock_axis.label = MagicMock(side_effect=[str(expected_value)]) mock_axis.getUnit().symbol().utf8.return_value = dummy_unit ws.getAxis.return_value = mock_axis model_type = MatrixWorkspaceTableViewModelType.y model = MatrixWorkspaceTableViewModel(ws, model_type) mock_section = 0 output = model.headerData(mock_section, Qt.Vertical, Qt.DisplayRole) expected_output = MatrixWorkspaceTableViewModel.VERTICAL_HEADER_DISPLAY_STRING_FOR_NUMERIC_AXIS.format( mock_section, expected_value, dummy_unit) self.assertEqual(expected_output, output)
def test_set_unicode_unit_label(self): """ Set the label of the x-axis using ascii only with a non-ascii character and make sure it's handled properly. """ ws = CreateWorkspace(DataX=[0, 1, 2], DataY=[3, 7, 5], DataE=[0.2, 0.3, 0.1], NSpec=1) label_unit = ws.getAxis(0).setUnit("Label") microseconds = "\u00B5s" # Second argument will implicitly call the ascii only constructor of UnitLabel. # We are intentionally passing a non-ascii string to try and break it. label_unit.setLabel("Time", microseconds) model_type = MatrixWorkspaceTableViewModelType.y model = MatrixWorkspaceTableViewModel(ws, model_type) header = model.headerData(0, Qt.Horizontal, Qt.DisplayRole) # Header should contain the microseconds unicode string. self.assertTrue(microseconds in header)
def test_headerData_vertical_header_tooltip_for_numeric_axis_with_binned_data( self): dummy_unit = 'unit' ws = MockWorkspace() mock_axis = Mock() mock_axis.isNumeric.return_value = True ws.getNumberHistograms.return_value = 1 mock_axis.length.return_value = 2 mock_axis.label = MagicMock(side_effect=["0.5"]) mock_axis.getUnit().symbol().utf8.return_value = dummy_unit ws.getAxis.return_value = mock_axis model_type = MatrixWorkspaceTableViewModelType.y model = MatrixWorkspaceTableViewModel(ws, model_type) mock_section = 0 output = model.headerData(mock_section, Qt.Vertical, Qt.ToolTipRole) expected_output = MatrixWorkspaceTableViewModel.VERTICAL_HEADER_TOOLTIP_STRING_FOR_NUMERIC_AXIS.format( mock_section, 0.5, dummy_unit) self.assertEqual(expected_output, output)