get_properties() times out and crashes

Bug #1082385 reported by Martin Pitt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Autopilot
Fix Released
High
Allan LeSage

Bug Description

I am evaluating autopilot for GTK programs (so this might be an autopilot-gtk bug). I have this simple test:

$ cat autopilot_tests/test_evince.py
from autopilot.testcase import AutopilotTestCase
from autopilot.introspection.gtk import GtkIntrospectionTestMixin

class Evince(AutopilotTestCase, GtkIntrospectionTestMixin):
    def setUp(self):
        super(Evince, self).setUp()
        self.application = self.launch_test_application('evince')

    def test_open(self):
        print '---- children ----'
        print self.application.get_children()
        print '---- child 0 ----'
        print dir(self.application.get_children()[0])
        print '---- child 0 props ----'
        print self.application.get_children()[0].get_properties()

        self.keyboard.press_and_release('Ctrl+o')

-------------------------- 8< -----------------------

If I disable the get_properties() call, it works; evince is started and the file open dialog opens. But with the get_properties() call it just hangs, and eventually crashes with

Traceback (most recent call last):
  File "/home/martin/ubuntu/tmp/autopilot_tests/test_evince.py", line 15, in test_open
    print self.application.get_children()[0].get_properties()
  File "/usr/lib/python2.7/dist-packages/autopilot/introspection/dbus.py", line 240, in get_children
    state_dicts = self.get_state_by_path(query)
  File "/usr/lib/python2.7/dist-packages/autopilot/introspection/dbus.py", line 299, in get_state_by_path
    ).GetState(piece)
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 70, in __call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
    **keywords)
  File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Revision history for this message
Allan LeSage (allanlesage) wrote :

I'm able to reproduce this and am looking into.

Changed in autopilot:
assignee: nobody → Allan LeSage (allanlesage)
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Martin Pitt (pitti) wrote :

This seems fixed in current trunk and in the autolanded package in saucy; the example in the description works properly now. Thanks!

Changed in autopilot:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.