1############################################################################# 2## 3## Copyright (C) 2016 The Qt Company Ltd. 4## Contact: https://www.qt.io/licensing/ 5## 6## This file is part of the test suite of Qt for Python. 7## 8## $QT_BEGIN_LICENSE:GPL-EXCEPT$ 9## Commercial License Usage 10## Licensees holding valid commercial Qt licenses may use this file in 11## accordance with the commercial license agreement provided with the 12## Software or, alternatively, in accordance with the terms contained in 13## a written agreement between you and The Qt Company. For licensing terms 14## and conditions see https://www.qt.io/terms-conditions. For further 15## information use the contact form at https://www.qt.io/contact-us. 16## 17## GNU General Public License Usage 18## Alternatively, this file may be used under the terms of the GNU 19## General Public License version 3 as published by the Free Software 20## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21## included in the packaging of this file. Please review the following 22## information to ensure the GNU General Public License requirements will 23## be met: https://www.gnu.org/licenses/gpl-3.0.html. 24## 25## $QT_END_LICENSE$ 26## 27############################################################################# 28 29""" Unittest for bug #547 """ 30""" http://bugs.openbossa.org/show_bug.cgi?id=547 """ 31 32import sys 33import os 34import sys 35import unittest 36 37sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 38from init_paths import init_test_paths 39init_test_paths(False) 40 41from PySide2 import QtWidgets 42 43class MyMainWindow(unittest.TestCase): 44 app = QtWidgets.QApplication(sys.argv) 45 def testCase1(self): 46 self._tree = QtWidgets.QTreeWidget() 47 self._tree.setColumnCount(2) 48 self._i1 = None 49 self._i11 = None 50 51 self._updateTree() 52 self.assertEqual(sys.getrefcount(self._i1), 3) 53 self.assertEqual(sys.getrefcount(self._i11), 3) 54 55 self._i11.parent().setExpanded(True) 56 self._i11.setExpanded(True) 57 58 self._updateTree() 59 self.assertEqual(sys.getrefcount(self._i1), 3) 60 self.assertEqual(sys.getrefcount(self._i11), 3) 61 62 def testCase2(self): 63 self._tree = QtWidgets.QTreeWidget() 64 self._tree.setColumnCount(2) 65 self._i1 = None 66 self._i11 = None 67 68 self._updateTree() 69 self.assertEqual(sys.getrefcount(self._i1), 3) 70 self.assertEqual(sys.getrefcount(self._i11), 3) 71 72 self._i11.parent().setExpanded(True) 73 self._i11.setExpanded(True) 74 75 self.assertEqual(sys.getrefcount(self._i1), 3) 76 self.assertEqual(sys.getrefcount(self._i11), 3) 77 78 def _updateTree(self): 79 self._tree.clear() 80 if self._i1 and self._i11: 81 self.assertEqual(sys.getrefcount(self._i1), 2) 82 self.assertEqual(sys.getrefcount(self._i11), 2) 83 84 self._i1 = QtWidgets.QTreeWidgetItem(self._tree, ['1', ]) 85 self.assertEqual(sys.getrefcount(self._i1), 3) 86 self._i11 = QtWidgets.QTreeWidgetItem(self._i1, ['11', ]) 87 self.assertEqual(sys.getrefcount(self._i11), 3) 88 89if __name__ == '__main__': 90 unittest.main() 91 92