diff options
author | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-02-27 14:44:39 +0100 |
---|---|---|
committer | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-03-01 13:56:16 +0000 |
commit | 6c0a0d70305cd6e12260a352099e74d34f3c239e (patch) | |
tree | da2df8451c284ef91fdeea76ae6f24315bf03864 /sources/pyside2/tests/QtWidgets/qvalidator_test.py | |
parent | 85e14a0d72b3470748e3cbe8871e23a818820ee9 (diff) |
Fix QValidator fixup() behavior
The return value from the fixup() method was ignored
leaving an Intermediate or Invalid input intact.
This was solved injecting code to the native wrapper
for the fixup() method that allows to change its value.
A test case is provided.
Task-number: PYSIDE-106
Change-Id: I1d796955178dbdbcfff90adb6ede5c8b2dd1acc3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/pyside2/tests/QtWidgets/qvalidator_test.py')
-rw-r--r-- | sources/pyside2/tests/QtWidgets/qvalidator_test.py | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/sources/pyside2/tests/QtWidgets/qvalidator_test.py b/sources/pyside2/tests/QtWidgets/qvalidator_test.py index 951d6b2b0..dd5eaadb3 100644 --- a/sources/pyside2/tests/QtWidgets/qvalidator_test.py +++ b/sources/pyside2/tests/QtWidgets/qvalidator_test.py @@ -29,38 +29,49 @@ from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * +from PySide2.QtTest import * import unittest from helper import UsesQApplication class MyValidator1(QValidator): - def fixUp(self, input): + def fixup(self, input): return "fixed" def validate(self, input, pos): return (QValidator.Acceptable, "fixed", 1) class MyValidator2(QValidator): - def fixUp(self, input): + def fixup(self, input): return "fixed" def validate(self, input, pos): return (QValidator.Acceptable, "fixed") class MyValidator3(QValidator): - def fixUp(self, input): + def fixup(self, input): return "fixed" def validate(self, input, pos): return (QValidator.Acceptable,) class MyValidator4(QValidator): - def fixUp(self, input): + def fixup(self, input): return "fixed" def validate(self, input, pos): return QValidator.Acceptable +class MyValidator5(QValidator): + def validate(self, input, pos): + if input.islower(): + return (QValidator.Intermediate, input, pos) + else: + return (QValidator.Acceptable, input, pos) + + def fixup(self, input): + return "22" + class QValidatorTest(UsesQApplication): def testValidator1(self): line = QLineEdit() @@ -110,5 +121,13 @@ class QValidatorTest(UsesQApplication): self.assertEqual(line.text(), "foo") self.assertEqual(line.cursorPosition(), 3) + def testValidator5(self): + line = QLineEdit() + line.show() + line.setValidator(MyValidator5()) + line.setText("foo") + QTest.keyClick(line, Qt.Key_Return) + self.assertEqual(line.text(), "22") + if __name__ == '__main__': unittest.main() |