File: test_introspection.py

package info (click to toggle)
at-spi2-core 2.57.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,140 kB
  • sloc: ansic: 44,803; xml: 1,480; python: 387; sh: 239; makefile: 28; javascript: 13
file content (38 lines) | stat: -rw-r--r-- 1,301 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import pytest
import dbus
import xml.etree.ElementTree as ElementTree

INTROSPECTABLE_IFACE = 'org.freedesktop.DBus.Introspectable'

# obj: a dbus proxy object to introspect
# expected_ifaces: sequence of interface names as strings
def check_object_supports_interfaces(obj, expected_ifaces):
    xml_str = str(obj.Introspect(dbus_interface=INTROSPECTABLE_IFACE))
    root = ElementTree.fromstring(xml_str)
    assert root.tag == 'node'

    interface_elements = root.findall('./interface')
    iface_names = map(lambda e: e.attrib['name'], interface_elements)
    iface_names = list(iface_names)
    iface_names.sort()

    expected_ifaces.sort()

    assert iface_names == expected_ifaces

# Test that the root object at /org/a11y/atspi/accessible/root advertises the correct interfaces
def test_introspect_root(registry_root, session_manager):
    check_object_supports_interfaces(
        registry_root,
        ['org.a11y.atspi.Accessible',
         'org.a11y.atspi.Component',
         'org.a11y.atspi.Socket',
         ]
    )

# Test that the registry object at /org/a11y/atspi/registry advertises the correct interfaces
def test_introspect_registry(registry_registry, session_manager):
    check_object_supports_interfaces(
        registry_registry,
        ['org.a11y.atspi.Registry']
    )