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
29import os
30import sys
31import unittest
32
33sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
34from init_paths import init_test_paths
35init_test_paths(False)
36
37from PySide2.QtCore import QItemSelection
38from PySide2.QtGui import QStandardItemModel, QStandardItem
39from PySide2.QtWidgets import QApplication
40class Bug324(unittest.TestCase):
41    def testOperators(self):
42        model = QStandardItemModel()
43        for i in range(100):
44            model.appendRow(QStandardItem("Item: %d"%i))
45
46        first = model.index(0, 0)
47        second = model.index(10, 0)
48        third = model.index(20, 0)
49        fourth = model.index(30, 0)
50
51        sel = QItemSelection(first, second)
52        sel2 = QItemSelection()
53        sel2.select(third, fourth)
54
55        sel3 = sel + sel2 #check operator +
56        self.assertEqual(len(sel3), 2)
57        sel4 = sel
58        sel4 += sel2 #check operator +=
59        self.assertEqual(len(sel4), 2)
60        self.assertEqual(sel4, sel3)
61
62if __name__ == "__main__":
63    unittest.main()
64