def test_headerData(self): model = PointsTableModel(None) model.set_section(self.section()) assert model.headerData(0, QtCore.Qt.Horizontal) == "abs_lat" assert model.headerData(1, QtCore.Qt.Horizontal) == "zfond" assert model.headerData(2, QtCore.Qt.Horizontal) == "Layer1" assert model.headerData(0, QtCore.Qt.Vertical) == "0"
def test_flags(self): model = PointsTableModel(None) model.set_section(self.section()) assert model.flags(model.index(0, 0)) == (QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) assert model.flags(model.index(0, 1)) == (QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable)
def test_setData(self): section = self.section() model = PointsTableModel(None) model.set_section(section) assert model.setData(model.index(1, 1), 10.0, QtCore.Qt.EditRole) assert section.z[1] == 10.0 assert model.setData(model.index(1, 2), 10.0, QtCore.Qt.EditRole) assert section.layers_elev[0][1] == 10.0
def test_data(self): section = self.section() model = PointsTableModel(None) model.set_section(section) assert model.data(model.index(1, 0), QtCore.Qt.DisplayRole) == str( round(section.distances[1], 3)) assert model.data(model.index(1, 1), QtCore.Qt.DisplayRole) == str(round(section.z[1], 3)) assert model.data(model.index(1, 2), QtCore.Qt.DisplayRole) == str( round(section.layers_elev[0][1], 3)) assert model.data(model.index(1, 0), QtCore.Qt.EditRole) == section.distances[1] assert model.data(model.index(1, 1), QtCore.Qt.EditRole) == section.z[1] assert (model.data(model.index(1, 2), QtCore.Qt.EditRole) == section.layers_elev[0][1])
def create_widget(self): request = QgsFeatureRequest() request.setLimit(1) feature = next(self.layer.getFeatures(request)) section = PreCourlisFileLine(self.layer).section_from_feature(feature) section.feature = feature widget = GraphWidget(None) model = PointsTableModel(widget) model.set_section(section) sel_model = QtCore.QItemSelectionModel(model, widget) widget.set_selection_model(sel_model) widget.set_sections( layer=self.layer, feature=feature, previous_section=None, current_section=section, next_section=None, ) return widget
def test_columnCount(self): model = PointsTableModel(None) model.set_section(self.section()) assert model.columnCount() == 3
def test_rowCount(self): model = PointsTableModel(None) model.set_section(self.section()) assert model.rowCount() == 9
def test_set_section(self): model = PointsTableModel(None) model.set_section(self.section())
class TestSelectionTool(TestGraphWidgetBase): def create_tool(self): self.widget = self.create_widget() self.section = self.widget.current_section tool = self.widget.selection_tool self.model = PointsTableModel(self.widget) self.model.set_section(self.section) tool.set_selection_model( QtCore.QItemSelectionModel(self.model, self.widget)) tool.set_data( self.section.distances, [self.section.z] + list(self.section.layers_elev), 1, ) return tool def event(self, row): event = Mock() event.button = 1 event.xdata = self.section.distances[row] + 10 event.ydata = self.section.z[row] + 10 event.x = 0 event.y = 0 return event def start_editing(self, tool): tool.selection_model.select( self.model.index(1, 1), QtCore.QItemSelectionModel.ClearAndSelect, ) tool.refresh_selection() tool.start_edit(self.section.distances[1], self.section.z[1]) def test_deactivate(self): tool = self.create_tool() tool.deactivate() def test_start_edit(self): tool = self.create_tool() self.start_editing(tool) def test_finish_edit(self): tool = self.create_tool() self.start_editing(tool) tool.finish_edit(self.section.distances[1] + 3, self.section.z[1] + 3) def test_motion_refresh(self): tool = self.create_tool() self.start_editing(tool) tool.motion_refresh(False) tool.motion_refresh(True) def test_on_press(self): tool = self.create_tool() tool.on_press(self.event(2)) indexes = tool.selection_model.selection().indexes() assert len(indexes) == 1 assert indexes[0].row() == 2 assert indexes[0].column() == 1 def test_on_press_layer(self): tool = self.create_tool() tool.column = 2 tool.on_press(self.event(2)) indexes = tool.selection_model.selection().indexes() assert len(indexes) == 1 assert indexes[0].row() == 2 assert indexes[0].column() == 2 @patch( "PreCourlis.widgets.selection_tool.QtWidgets.QApplication.keyboardModifiers", return_value=QtCore.Qt.ControlModifier, ) def test_on_press_ctrl(self, key_mod_mock): tool = self.create_tool() tool.on_press(self.event(2)) tool.on_press(self.event(3)) indexes = tool.selection_model.selection().indexes() assert len(indexes) == 2 @patch( "PreCourlis.widgets.selection_tool.QtWidgets.QApplication.keyboardModifiers", return_value=QtCore.Qt.ShiftModifier, ) def test_on_press_shift(self, key_mod_mock): tool = self.create_tool() tool.on_press(self.event(2)) tool.on_press(self.event(4)) indexes = tool.selection_model.selection().indexes() assert len(indexes) == 3 def test_on_motion(self): tool = self.create_tool() self.start_editing(tool) event = Mock() event.button = 1 event.xdata = tool.editing_start[0] event.ydata = tool.editing_start[1] + 3 event.x = 0 event.y = 0 tool.on_motion(event) def test_on_release(self): tool = self.create_tool() self.start_editing(tool) event = Mock() event.button = 1 event.xdata = tool.editing_start[0] event.ydata = tool.editing_start[1] + 3 event.x = 0 event.y = 0 tool.on_release(event)