2008-05-16 Mark Doffman <mark.doffman@codethink.co.uk>
[platform/core/uifw/at-spi2-atk.git] / tests / testClient.py
1 import sys
2 import gobject
3 import dbus
4 from dbus.mainloop.glib import DBusGMainLoop
5
6 from xml.dom import minidom
7
8 from accessible_cache import AccessibleCache
9
10 DBusGMainLoop(set_as_default=True)
11
12 def createNode(accessible, parentRef, parentElement):
13         e = minidom.Element("accessible")
14
15         e.attributes["reference"] = accessible.path
16         try:
17                 e.attributes["parent"] = accessible.parent.path
18         except:
19                 pass
20         e.attributes["name"] = accessible.name
21         e.attributes["role"] = str(int(accessible.role))
22         e.attributes["description"] = accessible.description
23
24         for i in accessible.interfaces:
25                 itf = minidom.Element("interface")
26                 itf.attributes["name"] = i
27                 e.appendChild(itf)
28
29         for i in range(0, accessible.numChildren):
30                 createNode(accessible.getChild(i), accessible.path, e)
31
32         parentElement.appendChild(e)
33
34 def main(argv):
35         filename = argv[1]
36         bus = dbus.SessionBus()
37         
38         loop = gobject.MainLoop()
39
40         cache = AccessibleCache(bus, 'test.atspi.tree', '/org/freedesktop/atspi/tree')
41         root = cache.getRootAccessible()
42
43         doc = minidom.Document()
44         createNode(root, '/', doc)
45         
46         file = open(filename, 'w')
47         file.write(doc.toprettyxml())
48         file.close()
49
50 if __name__ == '__main__':
51         sys.exit(main(sys.argv))