diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-11-10 15:56:43 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-11-10 19:58:16 +0100 |
commit | 5b9320df2284b96dba4d5eec1857a797797187e6 (patch) | |
tree | cc31101204f0cd6935cf6ddb784e007111785ada | |
parent | 45a0645901a839a1472588a3cbda4fd290cc556a (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
Pick-to: 6.2
Change-Id: I3fa26f063a83fd1afeee557e8b6d3d250ec46ec6
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-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), "") |