aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtGui
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2011-09-19 16:02:35 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:51 -0300
commitf367f0ada3ba2ff8a43470a3972173cf15b40f44 (patch)
treebed29cb4b9f5337b80d6bf822b2d0f7271279b90 /tests/QtGui
parent3a0b98ef4b495bb8eb0a8aa82f6f79bfdfad6c49 (diff)
Created unit test for bug #1006.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org> Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'tests/QtGui')
-rw-r--r--tests/QtGui/CMakeLists.txt1
-rw-r--r--tests/QtGui/bug_1006.py43
2 files changed, 44 insertions, 0 deletions
diff --git a/tests/QtGui/CMakeLists.txt b/tests/QtGui/CMakeLists.txt
index 5b511cdfd..6a4cfe393 100644
--- a/tests/QtGui/CMakeLists.txt
+++ b/tests/QtGui/CMakeLists.txt
@@ -78,6 +78,7 @@ PYSIDE_TEST(bug_988.py)
PYSIDE_TEST(bug_991.py)
PYSIDE_TEST(bug_998.py)
PYSIDE_TEST(bug_1002.py)
+PYSIDE_TEST(bug_1006.py)
PYSIDE_TEST(customproxywidget_test.py)
PYSIDE_TEST(deepcopy_test.py)
PYSIDE_TEST(event_filter_test.py)
diff --git a/tests/QtGui/bug_1006.py b/tests/QtGui/bug_1006.py
new file mode 100644
index 000000000..33afdfb96
--- /dev/null
+++ b/tests/QtGui/bug_1006.py
@@ -0,0 +1,43 @@
+import unittest
+import weakref
+from PySide.QtCore import Qt
+from PySide.QtGui import QDialog, QLabel, QGridLayout
+
+from helper import TimedQApplication
+
+class LabelWindow(QDialog):
+ def __init__(self, parent):
+ super(LabelWindow, self).__init__(parent)
+
+ self.test_layout = QGridLayout()
+ label = QLabel("Label")
+ self.test_layout.addWidget(label, 0, 0)
+ self.setLayout(self.test_layout)
+ self._destroyCalled = False
+
+
+ def replace(self):
+ old_item = self.test_layout.itemAtPosition(0, 0)
+ ref = weakref.ref(old_item, self._destroyed)
+ old_label = old_item.widget()
+ del old_item
+
+ self.test_layout.removeWidget(old_label)
+ label = QLabel("Label New")
+ old_label.deleteLater()
+ label.setAlignment(Qt.AlignCenter)
+ self.test_layout.addWidget(label, 0, 0)
+
+ def _destroyed(self, obj):
+ self._destroyCalled = True
+
+class TestBug1006 (TimedQApplication):
+
+ def testLayoutItemLifeTime(self):
+ window = LabelWindow(None)
+ window.replace()
+ self.assertTrue(window._destroyCalled)
+ self.app.exec_()
+
+if __name__ == "__main__":
+ unittest.main()