diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-09-19 16:02:35 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:51 -0300 |
commit | f367f0ada3ba2ff8a43470a3972173cf15b40f44 (patch) | |
tree | bed29cb4b9f5337b80d6bf822b2d0f7271279b90 | |
parent | 3a0b98ef4b495bb8eb0a8aa82f6f79bfdfad6c49 (diff) |
Created unit test for bug #1006.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
-rw-r--r-- | tests/QtGui/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtGui/bug_1006.py | 43 |
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() |