From 4985f114a30d5ce0de2a5402d3f2be3d97a93dc4 Mon Sep 17 00:00:00 2001 From: Paulo Alcantara Date: Tue, 29 Nov 2011 17:20:00 -0300 Subject: Fix BUG #1069 - "QtCore.QDataStream silently fails on writing Python string" Signed-off-by: Paulo Alcantara Reviewer: Willer Moreira Marcelo Lira --- PySide/QtCore/typesystem_core.xml | 46 ++++++++++++++++++--------------------- tests/QtCore/CMakeLists.txt | 1 + tests/QtCore/bug_1069.py | 22 +++++++++++++++++++ 3 files changed, 44 insertions(+), 25 deletions(-) create mode 100644 tests/QtCore/bug_1069.py diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index 8c843e2d9..5af8fe538 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -2666,55 +2666,51 @@ + + + + + - - *(%CPPSELF) << %1; + + - - %RETURN_TYPE val; - *(%CPPSELF) >> val; - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val); + + - - *(%CPPSELF) << %1; + + - - %RETURN_TYPE val; - *(%CPPSELF) >> val; - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val); + + - - *(%CPPSELF) << %1; + + - - %RETURN_TYPE val; - *(%CPPSELF) >> val; - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val); + + - - *(%CPPSELF) << %1; + + - - %RETURN_TYPE val; - *(%CPPSELF) >> val; - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val); + + - diff --git a/tests/QtCore/CMakeLists.txt b/tests/QtCore/CMakeLists.txt index ca737063c..388d38c07 100644 --- a/tests/QtCore/CMakeLists.txt +++ b/tests/QtCore/CMakeLists.txt @@ -25,6 +25,7 @@ PYSIDE_TEST(bug_987.py) PYSIDE_TEST(bug_994.py) PYSIDE_TEST(bug_1019.py) PYSIDE_TEST(bug_1031.py) +PYSIDE_TEST(bug_1069.py) PYSIDE_TEST(blocking_signals_test.py) PYSIDE_TEST(classinfo_test.py) PYSIDE_TEST(child_event_test.py) diff --git a/tests/QtCore/bug_1069.py b/tests/QtCore/bug_1069.py new file mode 100644 index 000000000..7033e1873 --- /dev/null +++ b/tests/QtCore/bug_1069.py @@ -0,0 +1,22 @@ +''' unit test for BUG #1069 ''' + +from PySide import QtCore +import unittest + +class QDataStreamOpOverloadTestCase(unittest.TestCase): + def setUp(self): + self.ba = QtCore.QByteArray() + self.stream = QtCore.QDataStream(self.ba, QtCore.QIODevice.WriteOnly) + + def testIt(self): + self.stream << "hello" + ok = False + for c in self.ba: + if c != b'\x00': + ok = True + break + + self.assertEqual(ok, True) + +if __name__ == "__main__": + unittest.main() -- cgit v1.2.3