aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-07-09 18:27:39 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-07-09 19:27:35 -0300
commit5cc46f2f1342e085897eefd06eda453e2f28b5bc (patch)
treefa8b36cc14ae4fa5e356cdebd3b387c8643452ce /tests
parent975edd5647f7fcebe9381ccf7d0524c736b1d069 (diff)
Fixed layout reference control on layouts.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/QtGui/qlayout_ref_test.py2
-rw-r--r--tests/QtGui/qlayout_test.py31
2 files changed, 28 insertions, 5 deletions
diff --git a/tests/QtGui/qlayout_ref_test.py b/tests/QtGui/qlayout_ref_test.py
index a6342718d..27c599c70 100644
--- a/tests/QtGui/qlayout_ref_test.py
+++ b/tests/QtGui/qlayout_ref_test.py
@@ -46,7 +46,7 @@ class SaveReference(UsesQApplication):
l = QHBoxLayout()
self.assertEqual(getrefcount(self.widget1), 2)
l.addWidget(self.widget1)
- self.assertEqual(getrefcount(self.widget1), 2)
+ self.assertEqual(getrefcount(self.widget1), 3)
w = QWidget()
w.setLayout(l)
diff --git a/tests/QtGui/qlayout_test.py b/tests/QtGui/qlayout_test.py
index ae773bb0a..88c37aa4d 100644
--- a/tests/QtGui/qlayout_test.py
+++ b/tests/QtGui/qlayout_test.py
@@ -2,7 +2,7 @@ import unittest
import sys
from helper import UsesQApplication
-from PySide.QtGui import QLayout, QWidget, QPushButton, QWidgetItem
+from PySide.QtGui import QLayout, QWidget, QPushButton, QWidgetItem, QHBoxLayout
class MyLayout(QLayout):
def __init__(self, parent=None):
@@ -29,24 +29,47 @@ class MyLayout(QLayout):
-#Test if a layout implemented in python, the QWidget.setLayout works
-#fine because this implement som layout functions used in glue code of
+#Test if a layout implemented in python, the QWidget.setLayout works
+#fine because this implement som layout functions used in glue code of
#QWidget, then in c++ when call a virtual function this need call the QLayout
#function implemented in python
class QLayoutTest(UsesQApplication):
-
def testOwnershipTransfer(self):
b = QPushButton("teste")
l = MyLayout()
+
l.addWidget(b)
self.assertEqual(sys.getrefcount(b), 2)
w = QWidget()
+
+ #transfer ref
+ w.setLayout(l)
+
+ self.assertEqual(sys.getrefcount(b), 3)
+
+
+ def testReferenceTransfer(self):
+ b = QPushButton("teste")
+ l = QHBoxLayout()
+
+ # keep ref
+ l.addWidget(b)
+ self.assertEqual(sys.getrefcount(b), 3)
+
+ w = QWidget()
+
+ # transfer ref
w.setLayout(l)
self.assertEqual(sys.getrefcount(b), 3)
+ # release ref
+ del w
+
+ self.assertEqual(sys.getrefcount(b), 2)
+
if __name__ == '__main__':
unittest.main()