diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-12-08 08:56:22 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-12-19 10:14:11 +0000 |
commit | 54457efbf96bf644f44a9ac1b55dc98847dad73e (patch) | |
tree | c2aba804609bfea73d64df43eaa2e63b4d8db61e /sources/pyside2 | |
parent | 5fc4489826e6be3fdde1c71185302b354d3ec162 (diff) |
Fix QtCore test bug829 to run on Windows
The test used Python functionality to create a temporary
file which caused an access error on Windows, apparently due to
the file still being open. Besides, the temporary file was leaked.
Rewrite using QTemporaryFile and make sure the file is closed
and the QTemporaryFile is deleted before using it and delete it
in __del__().
Task-number: PYSIDE-431
Change-Id: I5d63e76ead7169d9f3f2267ee53aa91b601a3968
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside2')
-rw-r--r-- | sources/pyside2/tests/QtCore/bug_829.py | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/sources/pyside2/tests/QtCore/bug_829.py b/sources/pyside2/tests/QtCore/bug_829.py index 5b14f7b59..730a2e9ed 100644 --- a/sources/pyside2/tests/QtCore/bug_829.py +++ b/sources/pyside2/tests/QtCore/bug_829.py @@ -30,21 +30,36 @@ # Test case for PySide bug 829 import unittest -from PySide2.QtCore import QSettings -import tempfile +from PySide2.QtCore import QDir, QSettings, QTemporaryFile +import os class QVariantConversions(unittest.TestCase): + + _confFileName = None + def testDictionary(self): - confFile = tempfile.NamedTemporaryFile(delete=False) - s = QSettings(confFile.name, QSettings.IniFormat) + confFile = QTemporaryFile(QDir.tempPath() + '/pysidebug829_XXXXXX.ini') + confFile.setAutoRemove(False) + self.assertTrue(confFile.open()) + confFile.close() + self._confFileName = confFile.fileName() + del confFile + s = QSettings(self._confFileName, QSettings.IniFormat) + self.assertEqual(s.status(), QSettings.NoError) # Save value s.setValue('x', {1: 'a'}) s.sync() + self.assertEqual(s.status(), QSettings.NoError) del s # Restore value - s = QSettings(confFile.name, QSettings.IniFormat) + s = QSettings(self._confFileName, QSettings.IniFormat) + self.assertEqual(s.status(), QSettings.NoError) self.assertEqual(s.value('x'), {1: 'a'}) + def __del__(self): + if self._confFileName is not None: + os.unlink(QDir.toNativeSeparators(self._confFileName)) + if __name__ == '__main__': unittest.main() |