diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-03-11 18:14:31 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-03-12 21:44:56 +0100 |
commit | f1d5a54e825d068d9b199e67ac92a62602c4f507 (patch) | |
tree | b883e26667c9b853190b893f9c513214d150f135 | |
parent | b906ce4a1eb8e7c7e2b44b5211f6bdbf4e5b4860 (diff) |
PyPy: Fix timeout in bug_997.py, take 2
Amends 6ffb2c3e852e2153b0c58ac659e7d8b60b691f19.
The QML component is usually complete even before the window shows.
Signal complete from QML and do not enter the event loop if that is
the case.
Pick-to: 6.2
Task-number: PYSIDE-1843
Task-number: PYSIDE-535
Change-Id: I7c68b7e16c197d9ec97e83cebb5b7919a5de71dc
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
-rw-r--r-- | sources/pyside6/tests/QtQml/bug_997.py | 20 | ||||
-rw-r--r-- | sources/pyside6/tests/QtQml/bug_997.qml | 5 |
2 files changed, 14 insertions, 11 deletions
diff --git a/sources/pyside6/tests/QtQml/bug_997.py b/sources/pyside6/tests/QtQml/bug_997.py index 8b2f1a99a..b16397084 100644 --- a/sources/pyside6/tests/QtQml/bug_997.py +++ b/sources/pyside6/tests/QtQml/bug_997.py @@ -44,11 +44,14 @@ from PySide6.QtQuick import QQuickView class TestBug(UsesQGuiApplication): + def setUp(self): + super().setUp() + self._complete = False + @Slot() - def check_complete(self): - if (self._view.rootObject().isComponentComplete()): - self._timer.stop() - self._view.close() + def complete(self): + self._complete = True + self.app.quit() def testQMLFunctionCall(self): ownerData = QQmlPropertyMap() @@ -57,18 +60,15 @@ class TestBug(UsesQGuiApplication): ownerData.insert('newValue', '') self._view = QQuickView() + self._view.engine().quit.connect(self.complete) self._view.setInitialProperties({'owner': ownerData}) file = Path(__file__).resolve().parent / 'bug_997.qml' self.assertTrue(file.is_file()) self._view.setSource(QUrl.fromLocalFile(file)) self.assertTrue(self._view.rootObject(), quickview_errorstring(self._view)) self._view.show() - while not self._view.isExposed(): - QCoreApplication.processEvents() - self._timer = QTimer() - self._timer.timeout.connect(self.check_complete) - self._timer.start(20) - self.app.exec() + if not self._complete: + self.app.exec() self.assertEqual(ownerData.value('newName'), ownerData.value('name')) diff --git a/sources/pyside6/tests/QtQml/bug_997.qml b/sources/pyside6/tests/QtQml/bug_997.qml index e3e34855e..86cad2add 100644 --- a/sources/pyside6/tests/QtQml/bug_997.qml +++ b/sources/pyside6/tests/QtQml/bug_997.qml @@ -31,5 +31,8 @@ import QtQuick 2.0 Text { required property var owner text: owner.name + " " + owner.phone - Component.onCompleted: { owner.newName = owner.name } + Component.onCompleted: { + owner.newName = owner.name + Qt.quit() + } } |