DynamicMetaObject optimizations.

Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
          Luciano Wolf <luciano.wolf@openbossa.org>
This commit is contained in:
Renato Filho 2011-08-03 20:16:20 -03:00 • committed by Hugo Parente Lima
commit a713e377bb
4 changed files with 173 additions and 259 deletions

View file

@ -5,6 +5,9 @@ import unittest
import sys
from PySide.QtCore import QObject, SIGNAL
MAX_LOOPS = 5
MAX_OBJECTS = 200
class Dummy(object):
def __init__(self, parent):
self._parent = parent
@ -16,26 +19,28 @@ class MultipleSlots(unittest.TestCase):
def myCB(self):
self._count += 1
"""
def testUnboundSignal(self):
o = QObject()
self._count = 0
for i in range(200):
for i in range(MAX_OBJECTS):
QObject.connect(o, SIGNAL("fire()"), lambda: self.myCB())
o.emit(SIGNAL("fire()"))
self.assertEqual(self._count, 200)
self.assertEqual(self._count, MAX_OBJECTS)
"""
def testDisconnectCleanup(self):
for c in range(5):
for c in range(MAX_LOOPS):
self._count = 0
self._senders = []
for i in range(200):
for i in range(MAX_OBJECTS):
o = QObject()
QObject.connect(o, SIGNAL("fire()"), lambda: self.myCB())
self._senders.append(o)
o.emit(SIGNAL("fire()"))
self.assertEqual(self._count, 200)
self.assertEqual(self._count, MAX_OBJECTS)
#delete all senders will disconnect the signals
self._senders = []