diff options
Diffstat (limited to 'sources/pyside6/tests/signals/short_circuit_test.py')
-rw-r--r-- | sources/pyside6/tests/signals/short_circuit_test.py | 70 |
1 files changed, 27 insertions, 43 deletions
diff --git a/sources/pyside6/tests/signals/short_circuit_test.py b/sources/pyside6/tests/signals/short_circuit_test.py index d0f45891d..1ad4bc24c 100644 --- a/sources/pyside6/tests/signals/short_circuit_test.py +++ b/sources/pyside6/tests/signals/short_circuit_test.py @@ -1,31 +1,7 @@ -############################################################################# -## -## 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$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +import gc import os import sys import unittest @@ -35,11 +11,17 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1])) from init_paths import init_test_paths init_test_paths(False) -from PySide6.QtCore import QObject, SIGNAL, SLOT +from PySide6.QtCore import QObject, Signal -class Dummy(QObject): - """Dummy class used in this test.""" +class Sender(QObject): + """Sender class used in this test.""" + + foo = Signal() + foo_int = Signal(int) + foo_int_int_string = Signal(int, int, str) + foo_int_qobject = Signal(int, QObject) + def __init__(self, parent=None): QObject.__init__(self, parent) @@ -51,8 +33,10 @@ class ShortCircuitSignals(unittest.TestCase): def tearDown(self): try: del self.args - except: + except: # noqa: E722 pass + # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion + gc.collect() def callback(self, *args): if tuple(self.args) == args: @@ -60,40 +44,40 @@ class ShortCircuitSignals(unittest.TestCase): def testNoArgs(self): """Short circuit signal without arguments""" - obj1 = Dummy() - QObject.connect(obj1, SIGNAL('foo()'), self.callback) + obj1 = Sender() + obj1.foo.connect(self.callback) self.args = tuple() - obj1.emit(SIGNAL('foo()'), *self.args) + obj1.foo.emit(*self.args) self.assertTrue(self.called) def testWithArgs(self): """Short circuit signal with integer arguments""" - obj1 = Dummy() + obj1 = Sender() - QObject.connect(obj1, SIGNAL('foo(int)'), self.callback) + obj1.foo_int.connect(self.callback) self.args = (42,) - obj1.emit(SIGNAL('foo(int)'), *self.args) + obj1.foo_int.emit(*self.args) self.assertTrue(self.called) def testMultipleArgs(self): """Short circuit signal with multiple arguments""" - obj1 = Dummy() + obj1 = Sender() - QObject.connect(obj1, SIGNAL('foo(int,int,QString)'), self.callback) + obj1.foo_int_int_string.connect(self.callback) self.args = (42, 33, 'char') - obj1.emit(SIGNAL('foo(int,int,QString)'), *self.args) + obj1.foo_int_int_string.emit(*self.args) self.assertTrue(self.called) def testComplexArgs(self): """Short circuit signal with complex arguments""" - obj1 = Dummy() + obj1 = Sender() - QObject.connect(obj1, SIGNAL('foo(int,QObject*)'), self.callback) + obj1.foo_int_qobject.connect(self.callback) self.args = (42, obj1) - obj1.emit(SIGNAL('foo(int,QObject*)'), *self.args) + obj1.foo_int_qobject.emit(*self.args) self.assertTrue(self.called) |