Exemple #1
0
def wait_for(predicate, timeout=5000):
    """Waits for timeout milliseconds or until the predicate returns true (Copied from QT).

    :param predicate: function
    :type predicate: Callable[None, bool]
    :param timeout: maximum time to wait for
    :type timeout: int
    """
    if predicate():
        return True
    remaining = timeout
    deadline = QDeadlineTimer()
    deadline.setRemainingTime(remaining, Qt.PreciseTimer)
    while True:
        QCoreApplication.processEvents(QEventLoop.AllEvents)
        QCoreApplication.sendPostedEvents(None, QEvent.DeferredDelete)
        remaining = deadline.remainingTime()
        if remaining > 0:
            QTest.qSleep(min(10, remaining))
        if predicate():
            return True
        remaining = deadline.remainingTime()
        if remaining <= 0:
            break
    return predicate()  # Last chance
Exemple #2
0
 def test_open_message_type_dialog(self):
     assert isinstance(self.cfc, CompareFrameController)
     self.cfc.ui.btnMessagetypeSettings.click()
     dialog = next((w for w in qApp.topLevelWidgets() if isinstance(w, MessageTypeDialog)), None)
     self.assertIsNotNone(dialog)
     self.assertEqual(dialog.windowTitle(), self.cfc.active_message_type.name)
     dialog.close()
     sip.delete(dialog)
     QTest.qSleep(1)
     QTest.qWait(10)
Exemple #3
0
 def tearDown(self):
     if hasattr(self, "dialog"):
         self.dialog.close()
     if hasattr(self, "form"):
         self.form.close_all()
         self.form.close()
         sip.delete(self.form)
         self.form = None
     QTest.qSleep(1)
     QTest.qWait(self.CLOSE_TIMEOUT)
Exemple #4
0
    def test_open_label_dialog(self):
        def test_dialog():
            timer.stop()
            dialog = next((w for w in qApp.topLevelWidgets() if isinstance(w, ProtocolLabelDialog)), None)
            self.assertIsNotNone(dialog)
            self.assertEqual(dialog.model.rowCount(), 1)
            dialog.close()
            sip.delete(dialog)

        self.cfc.add_protocol_label(10, 20, 0, 0, False)
        timer = QTimer(self.cfc)
        timer.timeout.connect(test_dialog)
        timer.start(20)
        self.cfc.on_edit_label_action_triggered(0)
        QTest.qSleep(1)
        QTest.qWait(10)
Exemple #5
0
    def test_downPB(self):
        device = DeviceConnectorMock("Device#1", "Owner", 83)
        self.widget.attachConnector(device)

        positionStart = device.currentPosition()

        downPB = self.widget.ui.downPB
        QTest.mousePress(downPB, Qt.LeftButton)
        self.assertEquals(0, device.upCounter)
        self.assertEquals(1, device.downCounter)
        self.assertEquals(0, device.stopCounter)

        QTest.qSleep(1000)

        QTest.mouseRelease(downPB, Qt.LeftButton)
        self.assertEquals(0, device.upCounter)
        self.assertEquals(1, device.downCounter)
        self.assertEquals(1, device.stopCounter)

        positionEnd = device.currentPosition()
        self.assertLess(positionEnd, positionStart)
    def testGeographicInputDisplay(self):
        crsIn = QgsCoordinateReferenceSystem("EPSG:4326")

        QTest.mouseClick(self.dw.inputAsDec, QtCore.Qt.LeftButton)
        self.assertFalse(self.dw.inputAsDMS.isChecked())
        self.assertTrue(self.dw.inputAsDec.isChecked())

        QTest.qSleep(3000)

        self.assertFalse(self.dw.inLeft.isVisible())
        self.assertFalse(self.dw.inLeftMin.isVisible())
        self.assertFalse(self.dw.inLeftSec.isVisible())

        self.assertFalse(self.dw.inRight.isVisible())
        self.assertFalse(self.dw.inRightMin.isVisible())
        self.assertFalse(self.dw.inRightSec.isVisible())

        self.assertTrue(self.dw.inLeftDec.isVisible())
        self.assertTrue(self.dw.inRightDec.isVisible())

        QTest.mouseClick(self.dw.inputAsDMS, QtCore.Qt.LeftButton)
        self.assertTrue(self.dw.inputAsDMS.isChecked())
        self.assertFalse(self.dw.inputAsDec.isChecked())

        self.dw.inLeft.insert("10")
        self.dw.inLeftMin.insert("5")
        self.dw.inLeftSec.insert("1")

        self.dw.inRight.insert("5")
        self.dw.inRightMin.insert("10")
        self.dw.inRightSec.insert("45")

        QTest.mouseClick(self.dw.inputAsDec, QtCore.Qt.LeftButton)
        self.assertEqual(helperFormatCoordinates("10.083611111"),
                         self.dw.inLeftDec.text())
        self.assertEqual(helperFormatCoordinates("5.179166667"),
                         self.dw.inRightDec.text())