diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-11-10 15:56:43 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-11-10 21:43:46 +0000 |
commit | 134f72292e0aca8f8d958c1c7f18808105ff97ec (patch) | |
tree | 03a8dc10344392e8a6199cd645f5d291de100fc1 | |
parent | 125a3580da81c9f5119c729e804ecdeb90a63faa (diff) |
Fix hang of test qinputdialog_get_test.py
After qtbase/851ed6f0b1014e5acabdc1f977979841d16ecc31, calling
QCoreApplication::quit() no longer terminates QDialog::exec() when not
in QCoreApplication::exec(). This means, TimedQApplication can no
longer be used to terminate the test. Add a timer that closes dialogs
instead.
Task-number: QTBUG-98088
Task-number: QTBUG-98239
Change-Id: I3fa26f063a83fd1afeee557e8b6d3d250ec46ec6
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
(cherry picked from commit 5b9320df2284b96dba4d5eec1857a797797187e6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py b/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py index c558e291b..375aa9a18 100644 --- a/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py +++ b/sources/pyside6/tests/QtWidgets/qinputdialog_get_test.py @@ -35,23 +35,34 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1])) from init_paths import init_test_paths init_test_paths(False) -from PySide6.QtWidgets import QInputDialog -from helper.timedqapplication import TimedQApplication +from PySide6.QtCore import QTimer +from PySide6.QtWidgets import QApplication, QInputDialog, QDialog +from helper.usesqapplication import UsesQApplication -class TestInputDialog(TimedQApplication): +def close_dialog(): + for w in QApplication.topLevelWidgets(): + if isinstance(w, QDialog): + w.reject() + + +class TestInputDialog(UsesQApplication): def testGetDouble(self): + QTimer.singleShot(500, close_dialog) self.assertEqual(QInputDialog.getDouble(None, "title", "label"), (0.0, False)) def testGetInt(self): + QTimer.singleShot(500, close_dialog) self.assertEqual(QInputDialog.getInt(None, "title", "label"), (0, False)) def testGetItem(self): + QTimer.singleShot(500, close_dialog) (item, bool) = QInputDialog.getItem(None, "title", "label", ["1", "2", "3"]) self.assertEqual(str(item), "1") def testGetText(self): + QTimer.singleShot(500, close_dialog) (text, bool) = QInputDialog.getText(None, "title", "label") self.assertEqual(str(text), "") |