summaryrefslogtreecommitdiffstats
path: root/tests/test_signal.py
diff options
context:
space:
mode:
authorGustavo J. A. M. Carneiro <gjc@src.gnome.org>2006-08-27 10:53:54 +0000
committerGustavo J. A. M. Carneiro <gjc@src.gnome.org>2006-08-27 10:53:54 +0000
commit3938273dfd085dc75f64ce44706cf508fd971099 (patch)
treeef7a60014be7ec25578d1f8582967cfd7712951e /tests/test_signal.py
parent6c0b030393f51f1ca65708cc6620e0f2456b8779 (diff)
downloadpygobject-3938273dfd085dc75f64ce44706cf508fd971099.tar.gz
pygobject-3938273dfd085dc75f64ce44706cf508fd971099.tar.xz
pygobject-3938273dfd085dc75f64ce44706cf508fd971099.zip
Bug 353039 – Failure in signal emission during do_set_property invoked from constructor
Diffstat (limited to 'tests/test_signal.py')
-rw-r--r--tests/test_signal.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/tests/test_signal.py b/tests/test_signal.py
index fd1e33c..bb33fb8 100644
--- a/tests/test_signal.py
+++ b/tests/test_signal.py
@@ -211,7 +211,35 @@ class TestClosures(unittest.TestCase):
c = C(self)
data = c.emit("my_signal", "\01\00\02")
self.assertEqual(data, "\02\00\01")
-
+
+class SigPropClass(gobject.GObject):
+ __gsignals__ = { 'my_signal': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ (gobject.TYPE_INT,)) }
+
+ __gproperties__ = {
+ 'foo': (str, None, None, '', gobject.PARAM_WRITABLE|gobject.PARAM_CONSTRUCT),
+ }
+
+ signal_emission_failed = False
+
+ def do_my_signal(self, arg):
+ self.arg = arg
+
+ def do_set_property(self, pspec, value):
+ if pspec.name == 'foo':
+ self._foo = value
+ else:
+ raise AttributeError, 'unknown property %s' % pspec.name
+ try:
+ self.emit("my-signal", 1)
+ except TypeError:
+ self.signal_emission_failed = True
+
+
+class TestSigProp(unittest.TestCase):
+ def testEmitInPropertySetter(self):
+ obj = SigPropClass()
+ self.failIf(obj.signal_emission_failed)
if __name__ == '__main__':
unittest.main()