Modify multiple connections test to avoid use more then 50 slots
supported by PySide.
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>,
Luciano Wolf <luciano.wolf@openbossa.org>
This commit is contained in:
parent
83db573031
commit
693ae6d6c4
2 changed files with 9 additions and 24 deletions
|
|
@ -12,11 +12,6 @@ except ImportError:
|
||||||
|
|
||||||
from helper import BasicPySlotCase, UsesQApplication
|
from helper import BasicPySlotCase, UsesQApplication
|
||||||
|
|
||||||
def random_gen(count=100, largest=99, lowest=0):
|
|
||||||
for i in range(count):
|
|
||||||
yield random.randint(lowest, largest)
|
|
||||||
|
|
||||||
|
|
||||||
class MultipleSignalConnections(unittest.TestCase):
|
class MultipleSignalConnections(unittest.TestCase):
|
||||||
'''Base class for multiple signal connection testing'''
|
'''Base class for multiple signal connection testing'''
|
||||||
|
|
||||||
|
|
@ -55,12 +50,11 @@ if hasQtGui:
|
||||||
|
|
||||||
def testSpinBoxValueChanged(self):
|
def testSpinBoxValueChanged(self):
|
||||||
"""Multiple connections to QSpinBox.valueChanged(int)"""
|
"""Multiple connections to QSpinBox.valueChanged(int)"""
|
||||||
for test in random_gen(10):
|
|
||||||
sender = QSpinBox()
|
sender = QSpinBox()
|
||||||
#FIXME if number of receivers if higher than 50, segfaults
|
#FIXME if number of receivers if higher than 50, segfaults
|
||||||
receivers = [BasicPySlotCase() for x in range(10)]
|
receivers = [BasicPySlotCase() for x in range(10)]
|
||||||
self.run_many(sender, 'valueChanged(int)', sender.setValue,
|
self.run_many(sender, 'valueChanged(int)', sender.setValue,
|
||||||
receivers, (test,))
|
receivers, (1,))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
import random
|
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from PySide.QtCore import QObject, SIGNAL, QProcess
|
from PySide.QtCore import QObject, SIGNAL, QProcess
|
||||||
|
|
@ -9,11 +8,6 @@ from PySide.QtCore import QObject, SIGNAL, QProcess
|
||||||
from helper import BasicPySlotCase, UsesQCoreApplication
|
from helper import BasicPySlotCase, UsesQCoreApplication
|
||||||
|
|
||||||
|
|
||||||
def random_gen(count=50, largest=49, lowest=0):
|
|
||||||
for i in range(count):
|
|
||||||
yield random.randint(lowest, largest)
|
|
||||||
|
|
||||||
|
|
||||||
class MultipleSignalConnections(unittest.TestCase):
|
class MultipleSignalConnections(unittest.TestCase):
|
||||||
'''Base class for multiple signal connection testing'''
|
'''Base class for multiple signal connection testing'''
|
||||||
|
|
||||||
|
|
@ -28,10 +22,9 @@ class MultipleSignalConnections(unittest.TestCase):
|
||||||
|
|
||||||
if args is None:
|
if args is None:
|
||||||
args = tuple()
|
args = tuple()
|
||||||
|
|
||||||
for rec in receivers:
|
for rec in receivers:
|
||||||
rec.setUp()
|
rec.setUp()
|
||||||
QObject.connect(sender, SIGNAL(signal), rec.cb)
|
self.assert_(QObject.connect(sender, SIGNAL(signal), rec.cb))
|
||||||
rec.args = tuple(args)
|
rec.args = tuple(args)
|
||||||
|
|
||||||
emitter(*args)
|
emitter(*args)
|
||||||
|
|
@ -49,11 +42,9 @@ class PythonMultipleSlots(UsesQCoreApplication, MultipleSignalConnections):
|
||||||
class Dummy(QObject):
|
class Dummy(QObject):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
for test in random_gen(20):
|
|
||||||
sender = Dummy()
|
sender = Dummy()
|
||||||
receivers = [BasicPySlotCase() for x in range(10)]
|
receivers = [BasicPySlotCase() for x in range(10)]
|
||||||
self.run_many(sender, 'foobar', partial(sender.emit,
|
self.run_many(sender, 'foobar', partial(sender.emit,SIGNAL('foobar')), receivers, (0, ))
|
||||||
SIGNAL('foobar')), receivers, (test, ))
|
|
||||||
|
|
||||||
|
|
||||||
class QProcessMultipleSlots(UsesQCoreApplication, MultipleSignalConnections):
|
class QProcessMultipleSlots(UsesQCoreApplication, MultipleSignalConnections):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue