aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtGui/qtextedit_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/QtGui/qtextedit_test.py')
-rw-r--r--tests/QtGui/qtextedit_test.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/QtGui/qtextedit_test.py b/tests/QtGui/qtextedit_test.py
new file mode 100644
index 000000000..442cbe2cf
--- /dev/null
+++ b/tests/QtGui/qtextedit_test.py
@@ -0,0 +1,32 @@
+'''Test cases for QTextEdit and ownership problems.'''
+
+import unittest
+from sys import getrefcount
+from PySide.QtGui import QTextEdit
+
+from helper import UsesQApplication
+
+class DontTouchReference(UsesQApplication):
+ '''Check if the QTextTable returned by QTextCursor.insertTable() is not
+ referenced by the QTextCursor that returns it.'''
+
+ def setUp(self):
+ super(DontTouchReference, self).setUp()
+ self.editor = QTextEdit()
+ self.cursor = self.editor.textCursor()
+ self.table = self.cursor.insertTable(1, 1)
+
+ def testQTextTable(self):
+ # methods which return QTextTable should not increment its reference
+ self.assertEqual(getrefcount(self.table), 2)
+ f = self.cursor.currentFrame()
+ del f
+ self.assertEqual(getrefcount(self.table), 2)
+ # destroying the cursor should not raise any "RuntimeError: internal
+ # C++ object already deleted." when accessing the QTextTable
+ del self.cursor
+ self.assertEqual(getrefcount(self.table), 2)
+ cell = self.table.cellAt(0, 0)
+
+if __name__ == "__main__":
+ unittest.main()