diff options
Diffstat (limited to 'sources/pyside2/tests/QtWidgets/qlayout_test.py')
-rw-r--r-- | sources/pyside2/tests/QtWidgets/qlayout_test.py | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/sources/pyside2/tests/QtWidgets/qlayout_test.py b/sources/pyside2/tests/QtWidgets/qlayout_test.py deleted file mode 100644 index 09b394a60..000000000 --- a/sources/pyside2/tests/QtWidgets/qlayout_test.py +++ /dev/null @@ -1,140 +0,0 @@ -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the test suite of Qt for Python. -## -## $QT_BEGIN_LICENSE:GPL-EXCEPT$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 3 as published by the Free Software -## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -import unittest -import sys - -from helper import UsesQApplication -from PySide2.QtCore import * -from PySide2.QtWidgets import * - -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) - -class MissingItemAtLayout(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 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() - - #transfer ref - w.setLayout(l) - - self.assertEqual(sys.getrefcount(b), 3) - - - def testReferenceTransfer(self): - b = QPushButton("teste") - l = QHBoxLayout() - - # keep ref - l.addWidget(b) - self.assertEqual(sys.getrefcount(b), 3) - - w = QWidget() - - # transfer ref - w.setLayout(l) - - self.assertEqual(sys.getrefcount(b), 3) - - # release ref - del w - - self.assertEqual(sys.getrefcount(b), 2) - - def testMissingFunctions(self): - w = QWidget() - b = QPushButton("test") - l = MissingItemAtLayout() - - l.addWidget(b) - - self.assertRaises(RuntimeError, w.setLayout, l) - - def testQFormLayout(self): - w = QWidget() - formLayout = QFormLayout() - spacer = QSpacerItem(100, 30) - formLayout.setItem(0, QFormLayout.SpanningRole, spacer) - w.setLayout(formLayout) - w.show() - QTimer.singleShot(10, w.close) - self.app.exec_() - del w - self.assertRaises(RuntimeError, spacer.isEmpty) - -if __name__ == '__main__': - unittest.main() |