get_properties() times out and crashes

Bug #1082385 reported by Martin Pitt on 2012-11-23
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Autopilot
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.

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
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  Edit
Everyone can see this information.

Other bug subscribers