aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtCore/bug_PYSIDE-164.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/QtCore/bug_PYSIDE-164.py')
-rw-r--r--tests/QtCore/bug_PYSIDE-164.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/QtCore/bug_PYSIDE-164.py b/tests/QtCore/bug_PYSIDE-164.py
new file mode 100644
index 000000000..53a1bd6c2
--- /dev/null
+++ b/tests/QtCore/bug_PYSIDE-164.py
@@ -0,0 +1,39 @@
+from PySide.QtCore import QCoreApplication, QEventLoop, QObject, Qt, QThread, QTimer, SIGNAL
+import unittest
+
+
+class Emitter(QThread):
+ def __init__(self):
+ QThread.__init__(self)
+
+ def run(self):
+ print "Before emit."
+ self.emit(SIGNAL("signal(int)"), 0)
+ print "After emit."
+
+class Receiver(QObject):
+ def __init__(self, eventloop):
+ QObject.__init__(self)
+ self.eventloop = eventloop
+
+ def receive(self, number):
+ print "Received number: %d" % number
+ self.eventloop.exit(0)
+
+
+class TestBugPYSIDE164(unittest.TestCase):
+
+ def testBlockingSignal(self):
+ app = QCoreApplication.instance() or QCoreApplication([])
+ eventloop = QEventLoop()
+ emitter = Emitter()
+ receiver = Receiver(eventloop)
+ emitter.connect(emitter, SIGNAL("signal(int)"),
+ receiver.receive, Qt.BlockingQueuedConnection)
+ emitter.start()
+ retval = eventloop.exec_()
+ emitter.wait()
+ self.assertEqual(retval, 0)
+
+if __name__ == '__main__':
+ unittest.main()