aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaulo Alcantara <paulo.alcantara@openbossa.org>2011-10-19 16:30:36 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:56:14 -0300
commitb7f593d99e2c02ddf8bde439df43b98c3d1caa0b (patch)
treee7e7d1b34f298ffe4dcb56e0c47cd24dae5cd6bc
parent6acb5f9bc77d583f2d9a1fcd896ace193019b4fb (diff)
Fix bug 1022 - "RuntimeError: maximum recursion depth exceeded while getting the str of an object"
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org> Marcelo Lira <marcelo.lira@openbossa.org> Luciano Wolf <luciano.wolf@openbossa.org> Signed-off-by: Paulo Alcantara <paulo.alcantara@openbossa.org>
-rw-r--r--PySide/QtScript/typesystem_script.xml3
-rw-r--r--tests/QtScript/CMakeLists.txt1
-rw-r--r--tests/QtScript/bug_1022.py13
3 files changed, 16 insertions, 1 deletions
diff --git a/PySide/QtScript/typesystem_script.xml b/PySide/QtScript/typesystem_script.xml
index 4dc3930cf..af2f198c5 100644
--- a/PySide/QtScript/typesystem_script.xml
+++ b/PySide/QtScript/typesystem_script.xml
@@ -66,7 +66,8 @@
QString format = QString().sprintf("%s(\"%s\")", ((PyObject*)%PYSELF)->ob_type->tp_name, qPrintable(%CPPSELF.toString()));
%PYARG_0 = Shiboken::String::fromCString(qPrintable(format));
} else {
- %PYARG_0 = PyObject_Str((PyObject*)%PYSELF);
+ %PYARG_0 = Shiboken::String::fromCString(
+ ((PyObject* )%PYSELF)->ob_type->tp_name);
}
</inject-code>
</add-function>
diff --git a/tests/QtScript/CMakeLists.txt b/tests/QtScript/CMakeLists.txt
index a3c7c7ded..dfea68df0 100644
--- a/tests/QtScript/CMakeLists.txt
+++ b/tests/QtScript/CMakeLists.txt
@@ -1,4 +1,5 @@
PYSIDE_TEST(base_test.py)
+PYSIDE_TEST(bug_1022.py)
PYSIDE_TEST(engine_test.py)
PYSIDE_TEST(property_test.py)
PYSIDE_TEST(qscriptvalue_test.py)
diff --git a/tests/QtScript/bug_1022.py b/tests/QtScript/bug_1022.py
new file mode 100644
index 000000000..3a246145a
--- /dev/null
+++ b/tests/QtScript/bug_1022.py
@@ -0,0 +1,13 @@
+import unittest
+
+from PySide.QtCore import *
+from PySide.QtScript import *
+
+class QScriptValueTest(unittest.TestCase):
+ def testQScriptValue(self):
+ app = QCoreApplication([])
+ engine = QScriptEngine()
+ repr(engine.evaluate('1 + 1'))
+
+if __name__ == '__main__':
+ unittest.main()