From 9af36fbb64f19842c0cc797c0b586b3a686805e8 Mon Sep 17 00:00:00 2001 From: Hugo Lima Date: Mon, 21 Sep 2009 14:51:26 -0300 Subject: Added all original pyside unit tests to the shiboken version. --- tests/signals/slot_reference_count_test.py | 54 ++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 tests/signals/slot_reference_count_test.py (limited to 'tests/signals/slot_reference_count_test.py') diff --git a/tests/signals/slot_reference_count_test.py b/tests/signals/slot_reference_count_test.py new file mode 100644 index 000000000..62037f28c --- /dev/null +++ b/tests/signals/slot_reference_count_test.py @@ -0,0 +1,54 @@ + +''' Forced disconnection: Delete one end of the signal connection''' + +import unittest +from sys import getrefcount + +from PySide.QtCore import QObject, SIGNAL, SLOT + +class Dummy(QObject): + def dispatch(self): + self.emit(SIGNAL('foo()')) + +class PythonSignalRefCount(unittest.TestCase): + + def setUp(self): + self.emitter = Dummy() + + def tearDown(self): + self.emitter + + def testRefCount(self): + def cb(*args): + pass + + self.assertEqual(getrefcount(cb), 2) + + QObject.connect(self.emitter, SIGNAL('foo()'), cb) + self.assertEqual(getrefcount(cb), 3) + + QObject.disconnect(self.emitter, SIGNAL('foo()'), cb) + self.assertEqual(getrefcount(cb), 2) + +class CppSignalRefCount(unittest.TestCase): + + def setUp(self): + self.emitter = QObject() + + def tearDown(self): + self.emitter + + def testRefCount(self): + def cb(*args): + pass + + self.assertEqual(getrefcount(cb), 2) + + QObject.connect(self.emitter, SIGNAL('destroyed()'), cb) + self.assertEqual(getrefcount(cb), 3) + + QObject.disconnect(self.emitter, SIGNAL('destroyed()'), cb) + self.assertEqual(getrefcount(cb), 2) + +if __name__ == '__main__': + unittest.main() -- cgit v1.2.3