Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/tree.py
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-11-29 18:58:42 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-11-29 18:58:42 (GMT)
commit69982ce0d1b712ccfe5797fb83721ab856ec951b (patch)
treeb7bafcd29292a7b7defaa79369e90eeefaa17285 /tests/tree.py
parent747b165600dd1c7787ca0aed73d6f75a69959961 (diff)
Move the sugar tests
To make space for the devbot ones
Diffstat (limited to 'tests/tree.py')
-rw-r--r--tests/tree.py131
1 files changed, 0 insertions, 131 deletions
diff --git a/tests/tree.py b/tests/tree.py
deleted file mode 100644
index 6f61004..0000000
--- a/tests/tree.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import time
-
-from gi.repository import Atspi
-
-def get_root():
- return Node(Atspi.get_desktop(0))
-
-def _retry_find(func):
- def wrapped(*args, **kwargs):
- result = None
- n_retries = 1
-
- while n_retries <= 10:
- print "Try %d, name=%s role_name=%s" % \
- (n_retries,
- kwargs.get("name", None),
- kwargs.get("role_name", None))
-
- result = func(*args, **kwargs)
- expect_none = kwargs.get("expect_none", False)
- if (not expect_none and result) or \
- (expect_none and not result):
- return result
-
- time.sleep(5)
- n_retries = n_retries + 1
-
- get_root().dump()
-
- return result
-
- return wrapped
-
-class Node:
- def __init__(self, accessible):
- self._accessible = accessible
-
- def dump(self):
- self._crawl_accessible(self, 0)
-
- def do_action(self, name):
- for i in range(self._accessible.get_n_actions()):
- if Atspi.Action.get_name(self._accessible, i) == name:
- self._accessible.do_action(i)
-
- def click(self, button=1):
- point = self._accessible.get_position(Atspi.CoordType.SCREEN)
- Atspi.generate_mouse_event(point.x, point.y, "b%sc" % button)
-
- @property
- def name(self):
- return self._accessible.get_name()
-
- @property
- def role_name(self):
- return self._accessible.get_role_name()
-
- @property
- def text(self):
- return Atspi.Text.get_text(self._accessible, 0, -1)
-
- def get_children(self):
- children = []
-
- for i in range(self._accessible.get_child_count()):
- child = self._accessible.get_child_at_index(i)
-
- # We sometimes get none children from atspi
- if child is not None:
- children.append(Node(child))
-
- return children
-
- @_retry_find
- def find_children(self, name=None, role_name=None):
- def predicate(node):
- return self._predicate(node, name, role_name)
-
- descendants = []
- self._find_all_descendants(self, predicate, descendants)
- if not descendants:
- return []
-
- return descendants
-
- @_retry_find
- def find_child(self, name=None, role_name=None, expect_none=False):
- def predicate(node):
- return self._predicate(node, name, role_name)
-
- node = self._find_descendant(self, predicate)
- if node is None:
- return None
-
- return node
-
- def __str__(self):
- return "[%s | %s]" % (self.name, self.role_name)
-
- def _predicate(self, node, name, role_name):
- if name is not None and name != node.name:
- return False
-
- if role_name is not None and role_name != node.role_name:
- return False
-
- return True
-
- def _find_descendant(self, node, predicate):
- if predicate(node):
- return node
-
- for child in node.get_children():
- descendant = self._find_descendant(child, predicate)
- if descendant is not None:
- return descendant
-
- return None
-
- def _find_all_descendants(self, node, predicate, matches):
- if predicate(node):
- matches.append(node)
-
- for child in node.get_children():
- self._find_all_descendants(child, predicate, matches)
-
- def _crawl_accessible(self, node, depth):
- print " " * depth + str(node)
-
- for child in node.get_children():
- self._crawl_accessible(child, depth + 1)