aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/tests
diff options
context:
space:
mode:
authorCristian Maureira-Fredes <cristian.maureira-fredes@qt.io>2018-02-27 14:44:39 +0100
committerCristian Maureira-Fredes <cristian.maureira-fredes@qt.io>2018-03-01 13:56:16 +0000
commit6c0a0d70305cd6e12260a352099e74d34f3c239e (patch)
treeda2df8451c284ef91fdeea76ae6f24315bf03864 /sources/pyside2/tests
parent85e14a0d72b3470748e3cbe8871e23a818820ee9 (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')
-rw-r--r--sources/pyside2/tests/QtWidgets/qvalidator_test.py27
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 951d6b2b..dd5eaadb 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()