Created unit test for layout policy.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
This commit is contained in:
parent
2db3d80e6c
commit
6f777cd227
1 changed files with 45 additions and 5 deletions
|
|
@ -1,7 +1,9 @@
|
||||||
import unittest
|
import unittest
|
||||||
import weakref
|
import weakref
|
||||||
|
import sys
|
||||||
|
|
||||||
from PySide.QtCore import Qt
|
from PySide.QtCore import Qt
|
||||||
from PySide.QtGui import QDialog, QLabel, QGridLayout
|
from PySide.QtGui import QDialog, QLabel, QGridLayout, QHBoxLayout, QWidget
|
||||||
|
|
||||||
from helper import TimedQApplication
|
from helper import TimedQApplication
|
||||||
|
|
||||||
|
|
@ -16,13 +18,15 @@ class LabelWindow(QDialog):
|
||||||
self._destroyCalled = False
|
self._destroyCalled = False
|
||||||
|
|
||||||
|
|
||||||
def replace(self):
|
def replace(self, unit):
|
||||||
old_item = self.test_layout.itemAtPosition(0, 0)
|
old_item = self.test_layout.itemAtPosition(0, 0)
|
||||||
ref = weakref.ref(old_item, self._destroyed)
|
|
||||||
old_label = old_item.widget()
|
old_label = old_item.widget()
|
||||||
del old_item
|
ref = weakref.ref(old_item, self._destroyed)
|
||||||
|
|
||||||
self.test_layout.removeWidget(old_label)
|
self.test_layout.removeWidget(old_label)
|
||||||
|
unit.assertRaises(RuntimeError, old_item.widget)
|
||||||
|
del old_item
|
||||||
|
|
||||||
label = QLabel("Label New")
|
label = QLabel("Label New")
|
||||||
old_label.deleteLater()
|
old_label.deleteLater()
|
||||||
label.setAlignment(Qt.AlignCenter)
|
label.setAlignment(Qt.AlignCenter)
|
||||||
|
|
@ -35,9 +39,45 @@ class TestBug1006 (TimedQApplication):
|
||||||
|
|
||||||
def testLayoutItemLifeTime(self):
|
def testLayoutItemLifeTime(self):
|
||||||
window = LabelWindow(None)
|
window = LabelWindow(None)
|
||||||
window.replace()
|
window.replace(self)
|
||||||
self.assertTrue(window._destroyCalled)
|
self.assertTrue(window._destroyCalled)
|
||||||
self.app.exec_()
|
self.app.exec_()
|
||||||
|
|
||||||
|
def testParentLayout(self):
|
||||||
|
def createLayout():
|
||||||
|
label = QLabel()
|
||||||
|
layout = QHBoxLayout()
|
||||||
|
layout.addWidget(label)
|
||||||
|
|
||||||
|
widget = QWidget()
|
||||||
|
widget.setLayout(layout)
|
||||||
|
return (layout, widget)
|
||||||
|
(layout, widget) = createLayout()
|
||||||
|
item = layout.itemAt(0)
|
||||||
|
self.assertTrue(isinstance(item.widget(), QWidget))
|
||||||
|
|
||||||
|
def testRemoveOrphanWidget(self):
|
||||||
|
widget = QLabel()
|
||||||
|
layout = QHBoxLayout()
|
||||||
|
layout.addWidget(widget)
|
||||||
|
self.assertEqual(sys.getrefcount(widget), 3)
|
||||||
|
|
||||||
|
layout.removeWidget(widget)
|
||||||
|
widget.setObjectName("MyWidget")
|
||||||
|
self.assertEqual(sys.getrefcount(widget), 2)
|
||||||
|
|
||||||
|
def testRemoveChildWidget(self):
|
||||||
|
parent = QLabel()
|
||||||
|
widget = QLabel(parent)
|
||||||
|
self.assertEqual(sys.getrefcount(widget), 3)
|
||||||
|
|
||||||
|
layout = QHBoxLayout()
|
||||||
|
layout.addWidget(widget)
|
||||||
|
self.assertEqual(sys.getrefcount(widget), 3)
|
||||||
|
|
||||||
|
layout.removeWidget(widget)
|
||||||
|
widget.setObjectName("MyWidget")
|
||||||
|
self.assertEqual(sys.getrefcount(widget), 3)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue