diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-06-07 14:43:45 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-06-07 16:57:11 -0300 |
commit | ab918abc1e103e0ca86939f7d057e8a44ac8a4ef (patch) | |
tree | 53c6f57d089dcf5e145d766b1ceef704714046d8 /tests/QtGui/qlayout_test.py | |
parent | 471486732b03cbb42b884158604a59d5a18e8a35 (diff) |
Created new unittest model.
Separete unittest for module.
Only run unittest for compiled modules.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>,
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'tests/QtGui/qlayout_test.py')
-rw-r--r-- | tests/QtGui/qlayout_test.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/QtGui/qlayout_test.py b/tests/QtGui/qlayout_test.py new file mode 100644 index 000000000..ae773bb0a --- /dev/null +++ b/tests/QtGui/qlayout_test.py @@ -0,0 +1,52 @@ +import unittest +import sys + +from helper import UsesQApplication +from PySide.QtGui import QLayout, QWidget, QPushButton, QWidgetItem + +class MyLayout(QLayout): + def __init__(self, parent=None): + QLayout.__init__(self, parent) + self._list = [] + + def addItem(self, item): + self.add(item) + + def addWidget(self, widget): + self.add(QWidgetItem(widget)) + + def itemAt(self, index): + if index < len(self._list): + return self._list[index] + + return None + + def count(self): + return len(self._list) + + def add(self, item): + self._list.append(item) + + + +#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() + w.setLayout(l) + + self.assertEqual(sys.getrefcount(b), 3) + +if __name__ == '__main__': + unittest.main() |