def test_mouse_drag(self): """Test setting extents by dragging works. This currently fails as QTest does not properly do the mouse interactions with the canvas. """ # Imported here because it is not available in OSX QGIS bundle # pylint: disable=redefined-outer-name from qgis.PyQt.QtTest import QTest # Click the capture button QTest.mouseClick(self.dialog.capture_button, Qt.LeftButton) # drag a rect on the canvas QTest.mousePress(CANVAS, Qt.LeftButton, pos=QPoint(0, 0), delay=500) QTest.mouseRelease( CANVAS, Qt.LeftButton, pos=QPoint(300, 300), delay=-1) # on drag the extents selector windows should appear again QTest.qWaitForWindowExposed(self.dialog) # Click ok to dispose of the window again ok = self.dialog.button_box.button(QtWidgets.QDialogButtonBox.Ok) QTest.mouseClick(ok, Qt.LeftButton) # Check the extent emitted on closing teh dialog is correct expected_extent = QgsRectangle(10.0, 10.0, 30.0, 20.0) self.assertEqual(self.extent.toString(), expected_extent.toString())
def setUp(self): """Runs before each test.""" self.extent = QgsRectangle(10.0, 10.0, 20.0, 20.0) self.crs = QgsCoordinateReferenceSystem('EPSG:4326') CANVAS.setExtent(self.extent) self.dialog = ExtentSelectorDialog( IFACE, PARENT, self.extent, self.crs) self.signal_received = False self.dialog.extent_defined.connect(self.extent_defined) self.dialog.show() QTest.qWaitForWindowExposed(self.dialog)