From f367f0ada3ba2ff8a43470a3972173cf15b40f44 Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Mon, 19 Sep 2011 16:02:35 -0300 Subject: Created unit test for bug #1006. Reviewer: Luciano Wolf Marcelo Lira --- tests/QtGui/CMakeLists.txt | 1 + tests/QtGui/bug_1006.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 tests/QtGui/bug_1006.py (limited to 'tests') 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() -- cgit v1.2.3