aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/tests
diff options
context:
space:
mode:
authorCristián Maureira-Fredes <cristian.maureira-fredes@qt.io>2019-10-28 12:24:48 +0100
committerCristian Maureira-Fredes <Cristian.Maureira-Fredes@qt.io>2020-06-12 16:41:08 +0200
commit0395817102e9b8601c93e60349360fcdd8a3c66d (patch)
treec400630b43b464ca85310f692813966088dcb5e0 /sources/pyside2/tests
parentbdb3a0de4934fe05fee8539b29cfb07a5693471e (diff)
Fix booleans and empty list cases in QSettings5.12
After the fix for PYSIDE-1010 there were two things that were not properly understood: 1. A special case for booleans was required, 2. When a list was detected, the split was wrongly creating a list with a '0' instead of an empty one. Additonally, due to the wrong treatment we couldn't notice if the value 0 was None, the number zero, or even false, so this patch amends the previous implementation to properly treat these cases. New test cases were added. Change-Id: I41d5387bb835cfa96f94e5577e993a4b87b303f0 Fixes: PYSIDE-1130 Fixes: PYSIDE-820 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit ba04613a65be7b50bbcc9dae8c18d195243513c3) Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside2/tests')
-rw-r--r--sources/pyside2/tests/QtCore/qsettings_test.py46
1 files changed, 43 insertions, 3 deletions
diff --git a/sources/pyside2/tests/QtCore/qsettings_test.py b/sources/pyside2/tests/QtCore/qsettings_test.py
index 6d64b0db3..36a4c3c62 100644
--- a/sources/pyside2/tests/QtCore/qsettings_test.py
+++ b/sources/pyside2/tests/QtCore/qsettings_test.py
@@ -55,15 +55,55 @@ class TestQSettings(unittest.TestCase):
def testDefaultValueConversion(self):
settings = QSettings('foo.ini', QSettings.IniFormat)
- r = settings.value('lala', 22)
+ settings.setValue('zero_value', 0)
+ settings.setValue('empty_list', [])
+ settings.setValue('bool1', False)
+ settings.setValue('bool2', True)
+ del settings
+
+ # Loading values already set
+ settings = QSettings('foo.ini', QSettings.IniFormat)
+
+ # Getting value that doesn't exist
+ r = settings.value("variable")
+ self.assertEqual(type(r), type(None))
+
+ # Handling zero value
+ r = settings.value('zero_value')
if py3k.IS_PY3K:
self.assertEqual(type(r), int)
else:
self.assertEqual(type(r), long)
- r = settings.value('lala', 22, type=str)
- self.assertEqual(type(r), str)
+ r = settings.value('zero_value', type=int)
+ self.assertEqual(type(r), int)
+
+ # Empty list
+ r = settings.value('empty_list')
+ self.assertTrue(len(r) == 0)
+ self.assertEqual(type(r), list)
+
+ r = settings.value('empty_list', type=list)
+ self.assertTrue(len(r) == 0)
+ self.assertEqual(type(r), list)
+
+ # Booleans
+ r = settings.value('bool1')
+ self.assertEqual(type(r), bool)
+
+ r = settings.value('bool2')
+ self.assertEqual(type(r), bool)
+
+ r = settings.value('bool1', type=bool)
+ self.assertEqual(type(r), bool)
+
+ r = settings.value('bool2', type=int)
+ self.assertEqual(type(r), int)
+
+ r = settings.value('bool2', type=bool)
+ self.assertEqual(type(r), bool)
+ # Not set variable, but with default value
r = settings.value('lala', 22, type=bytes)
self.assertEqual(type(r), bytes)