aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-03-11 18:14:31 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-03-12 21:44:56 +0100
commitf1d5a54e825d068d9b199e67ac92a62602c4f507 (patch)
treeb883e26667c9b853190b893f9c513214d150f135
parentb906ce4a1eb8e7c7e2b44b5211f6bdbf4e5b4860 (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.py20
-rw-r--r--sources/pyside6/tests/QtQml/bug_997.qml5
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()
+ }
}