PySide/tests/signals/signal_object_test.py
Renato Filho 5eabe6943f Implemente sequence operator on signal class.
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>,
          Luciano Wolf <luciano.wolf@openbossa.org>
2010-05-17 19:54:16 -03:00

54 lines
1.1 KiB
Python

#!/usr/bin/env python
import sys
import unittest
import functools
from PySide.QtCore import *
class MyObject(QObject):
sig1 = Signal()
sig2 = Signal(int, name='rangeChanged')
sig3 = Signal(int)
sig4 = Signal((int,), (QString,))
@Slot(int)
def myRange(self, r):
print "Range changed:", r
self._range = r
def slot1(self):
self._called = True
def slotString(self, s):
self._s = s
class SignalObjectTest(unittest.TestCase):
def testsingleConnect(self):
o = MyObject()
o.sig1.connect(o.slot1)
o.sig1.emit()
self.assert_(o._called)
def testSignalWithArgs(self):
o = MyObject()
o.sig3.connect(o.myRange)
o.sig3.emit(10)
self.assertEqual(o._range, 10)
def testSignatureParse(self):
o = MyObject()
o.sig2.connect(o.myRange)
o.sig2.emit(10)
def testDictOperator(self):
o = MyObject()
o.sig4[QString].connect(o.slotString)
o.sig4[QString].emit("PySide")
self.assertEqual(o._s, "PySide")
if __name__ == '__main__':
unittest.main()