summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gi/overrides/GObject.py1
-rw-r--r--tests/test_gobject.py19
2 files changed, 19 insertions, 1 deletions
diff --git a/gi/overrides/GObject.py b/gi/overrides/GObject.py
index 95a3c1f3..823c0b04 100644
--- a/gi/overrides/GObject.py
+++ b/gi/overrides/GObject.py
@@ -520,7 +520,6 @@ class Object(GObjectModule.Object):
interface_install_property = _unsupported_method
interface_list_properties = _unsupported_method
notify_by_pspec = _unsupported_method
- run_dispose = _unsupported_method
watch_closure = _unsupported_method
# Make all reference management methods private but still accessible.
diff --git a/tests/test_gobject.py b/tests/test_gobject.py
index f5a65bba..fbc3bb79 100644
--- a/tests/test_gobject.py
+++ b/tests/test_gobject.py
@@ -67,6 +67,25 @@ def test_gobject_weak_ref():
class TestGObjectAPI(unittest.TestCase):
+ def test_run_dispose(self):
+ class TestObject(GObject.GObject):
+ int_prop = GObject.Property(default=0, type=int)
+
+ obj = TestObject()
+ called = []
+
+ def on_notify(*args):
+ called.append(args)
+
+ obj.connect('notify::int-prop', on_notify)
+ obj.notify("int-prop")
+ obj.notify("int-prop")
+ # after this everything should be disconnected
+ obj.run_dispose()
+ obj.notify("int-prop")
+ obj.notify("int-prop")
+ assert len(called) == 2
+
def test_call_method_uninitialized_instance(self):
obj = GObject.Object.__new__(GObject.Object)
with self.assertRaisesRegex(RuntimeError, '.*is not initialized'):