aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests/signals/pysignal_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/tests/signals/pysignal_test.py')
-rw-r--r--sources/pyside6/tests/signals/pysignal_test.py172
1 files changed, 85 insertions, 87 deletions
diff --git a/sources/pyside6/tests/signals/pysignal_test.py b/sources/pyside6/tests/signals/pysignal_test.py
index e3d6a55da..d6f44edf8 100644
--- a/sources/pyside6/tests/signals/pysignal_test.py
+++ b/sources/pyside6/tests/signals/pysignal_test.py
@@ -11,31 +11,31 @@ 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, Qt
-
-try:
- from PySide6.QtWidgets import QSpinBox, QApplication, QWidget
- hasQtGui = True
-except ImportError:
- hasQtGui = False
+from PySide6.QtCore import QObject, Signal, Qt
+from PySide6.QtWidgets import QSpinBox, QApplication, QWidget # noqa: F401
from helper.usesqapplication import UsesQApplication
-class Dummy(QObject):
- """Dummy class used in this test."""
+TEST_LIST = ["item1", "item2", "item3"]
+
+
+class Sender(QObject):
+ """Sender class used in this test."""
+
+ foo = Signal()
+ foo_int = Signal(int)
+ dummy = Signal(str)
+ dummy2 = Signal(str, list)
+
def __init__(self, parent=None):
- QObject.__init__(self, parent)
+ super().__init__(parent)
def callDummy(self):
- self.emit(SIGNAL("dummy(PyObject)"), "PyObject")
+ self.dummy.emit("PyObject")
def callDummy2(self):
- lst = []
- lst.append("item1")
- lst.append("item2")
- lst.append("item3")
- self.emit(SIGNAL("dummy2(PyObject, PyObject)"), "PyObject0", lst)
+ self.dummy2.emit("PyObject0", TEST_LIST)
class PyObjectType(UsesQApplication):
@@ -46,35 +46,33 @@ class PyObjectType(UsesQApplication):
def mySlot2(self, arg0, arg1):
self.assertEqual(arg0, "PyObject0")
- self.assertEqual(arg1[0], "item1")
- self.assertEqual(arg1[1], "item2")
- self.assertEqual(arg1[2], "item3")
+ self.assertEqual(arg1, TEST_LIST)
self.callCount += 1
if self.running:
self.app.quit()
def setUp(self):
- super(PyObjectType, self).setUp()
+ super().setUp()
self.callCount = 0
self.running = False
def testWithOneArg(self):
- o = Dummy()
- o.connect(SIGNAL("dummy(PyObject)"), self.mySlot)
+ o = Sender()
+ o.dummy.connect(self.mySlot)
o.callDummy()
self.assertEqual(self.callCount, 1)
def testWithTwoArg(self):
- o = Dummy()
- o.connect(SIGNAL("dummy2(PyObject,PyObject)"), self.mySlot2)
+ o = Sender()
+ o.dummy2.connect(self.mySlot2)
o.callDummy2()
self.assertEqual(self.callCount, 1)
def testAsyncSignal(self):
self.called = False
self.running = True
- o = Dummy()
- o.connect(SIGNAL("dummy2(PyObject,PyObject)"), self.mySlot2, Qt.QueuedConnection)
+ o = Sender()
+ o.dummy2.connect(self.mySlot2, Qt.QueuedConnection)
o.callDummy2()
self.app.exec()
self.assertEqual(self.callCount, 1)
@@ -82,8 +80,8 @@ class PyObjectType(UsesQApplication):
def testTwice(self):
self.called = False
self.running = True
- o = Dummy()
- o.connect(SIGNAL("dummy2(PyObject,PyObject)"), self.mySlot2, Qt.QueuedConnection)
+ o = Sender()
+ o.dummy2.connect(self.mySlot2, Qt.QueuedConnection)
o.callDummy2()
o.callDummy2()
self.app.exec()
@@ -97,7 +95,7 @@ class PythonSigSlot(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()
@@ -108,98 +106,98 @@ class PythonSigSlot(unittest.TestCase):
def testNoArgs(self):
"""Python signal and slots without arguments"""
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo()'), self.callback)
+ 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):
"""Python signal and slots 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 testDisconnect(self):
- obj1 = Dummy()
+ obj1 = Sender()
- QObject.connect(obj1, SIGNAL('foo(int)'), self.callback)
- QObject.disconnect(obj1, SIGNAL('foo(int)'), self.callback)
+ obj1.foo_int.connect(self.callback)
+ self.assertTrue(obj1.foo_int.disconnect(self.callback))
self.args = (42, )
- obj1.emit(SIGNAL('foo(int)'), *self.args)
+ obj1.foo_int.emit(*self.args)
self.assertTrue(not self.called)
-if hasQtGui:
- class SpinBoxPySignal(UsesQApplication):
- """Tests the connection of python signals to QSpinBox qt slots."""
+class SpinBoxPySignal(UsesQApplication):
+ """Tests the connection of python signals to QSpinBox qt slots."""
- def setUp(self):
- super(SpinBoxPySignal, self).setUp()
- self.obj = Dummy()
- self.spin = QSpinBox()
- self.spin.setValue(0)
+ def setUp(self):
+ super().setUp()
+ self.obj = Sender()
+ self.spin = QSpinBox()
+ self.spin.setValue(0)
- def tearDown(self):
- super(SpinBoxPySignal, self).tearDown()
- del self.obj
- del self.spin
- # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
- gc.collect()
+ def tearDown(self):
+ super().tearDown()
+ del self.obj
+ del self.spin
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
+
+ def testValueChanged(self):
+ """Emission of a python signal to QSpinBox setValue(int)"""
- def testValueChanged(self):
- """Emission of a python signal to QSpinBox setValue(int)"""
- QObject.connect(self.obj, SIGNAL('dummy(int)'), self.spin, SLOT('setValue(int)'))
- self.assertEqual(self.spin.value(), 0)
+ self.obj.foo_int.connect(self.spin.setValue)
+ self.assertEqual(self.spin.value(), 0)
- self.obj.emit(SIGNAL('dummy(int)'), 4)
- self.assertEqual(self.spin.value(), 4)
+ self.obj.foo_int.emit(4)
+ self.assertEqual(self.spin.value(), 4)
- def testValueChangedMultiple(self):
- """Multiple emissions of a python signal to QSpinBox setValue(int)"""
- QObject.connect(self.obj, SIGNAL('dummy(int)'), self.spin, SLOT('setValue(int)'))
- self.assertEqual(self.spin.value(), 0)
+ def testValueChangedMultiple(self):
+ """Multiple emissions of a python signal to QSpinBox setValue(int)"""
+ self.obj.foo_int.connect(self.spin.setValue)
+ self.assertEqual(self.spin.value(), 0)
- self.obj.emit(SIGNAL('dummy(int)'), 4)
- self.assertEqual(self.spin.value(), 4)
+ self.obj.foo_int.emit(4)
+ self.assertEqual(self.spin.value(), 4)
- self.obj.emit(SIGNAL('dummy(int)'), 77)
- self.assertEqual(self.spin.value(), 77)
+ self.obj.foo_int.emit(77)
+ self.assertEqual(self.spin.value(), 77)
-if hasQtGui:
- class WidgetPySignal(UsesQApplication):
- """Tests the connection of python signals to QWidget qt slots."""
+class WidgetPySignal(UsesQApplication):
+ """Tests the connection of python signals to QWidget qt slots."""
+
+ def setUp(self):
+ super(WidgetPySignal, self).setUp()
+ self.obj = Sender()
+ self.widget = QWidget()
- def setUp(self):
- super(WidgetPySignal, self).setUp()
- self.obj = Dummy()
- self.widget = QWidget()
+ def tearDown(self):
+ super(WidgetPySignal, self).tearDown()
+ del self.obj
+ del self.widget
+ # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
+ gc.collect()
- def tearDown(self):
- super(WidgetPySignal, self).tearDown()
- del self.obj
- del self.widget
- # PYSIDE-535: Need to collect garbage in PyPy to trigger deletion
- gc.collect()
+ def testShow(self):
+ """Emission of a python signal to QWidget slot show()"""
+ self.widget.hide()
- def testShow(self):
- """Emission of a python signal to QWidget slot show()"""
- self.widget.hide()
+ self.obj.foo.connect(self.widget.show)
+ self.assertTrue(not self.widget.isVisible())
- QObject.connect(self.obj, SIGNAL('dummy()'), self.widget, SLOT('show()'))
- self.assertTrue(not self.widget.isVisible())
+ self.obj.foo.emit()
+ self.assertTrue(self.widget.isVisible())
- self.obj.emit(SIGNAL('dummy()'))
- self.assertTrue(self.widget.isVisible())
if __name__ == '__main__':
unittest.main()