summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Robinson <crobinso@redhat.com>2023-05-06 17:01:44 -0400
committerCole Robinson <crobinso@redhat.com>2023-05-06 19:43:24 -0400
commit64bd6ba53e383c941df226bbb7f066b0a363d070 (patch)
tree50d29353a682a961ca9f901c922417e8a0d5b1c6
parent509c95ddb9b3f30ea88a61b065cd920055faa5f4 (diff)
downloadvirt-manager-64bd6ba53e383c941df226bbb7f066b0a363d070.tar.gz
tests: uitests: make menu operations more robust
Signed-off-by: Cole Robinson <crobinso@redhat.com>
-rw-r--r--tests/uitests/lib/_node.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/uitests/lib/_node.py b/tests/uitests/lib/_node.py
index 1c6cf107..ad95ff02 100644
--- a/tests/uitests/lib/_node.py
+++ b/tests/uitests/lib/_node.py
@@ -221,24 +221,29 @@ class _VMMDogtailNode(dogtail.tree.Node):
clickX, clickY = self.title_coordinates()
dogtail.rawinput.click(clickX, clickY, button)
+ def is_menuitem(self):
+ submenu = (self.roleName == "menu" and
+ (not self.accessible_parent or
+ self.accessible_parent.roleName == "menu"))
+ return submenu or self.roleName == "menu item"
+
def click(self, *args, **kwargs):
"""
- click wrapper, give up to a second for widget to appear on
- screen, helps reduce some test flakiness
+ click wrapper, check some states first to reduce flakiness
"""
# pylint: disable=arguments-differ,signature-differs
self.check_onscreen()
self.check_sensitive()
+ if self.is_menuitem():
+ self.point()
super().click(*args, **kwargs)
def point(self, *args, **kwargs):
# pylint: disable=signature-differs
super().point(*args, **kwargs)
- if (self.roleName == "menu" and
- self.accessible_parent.roleName == "menu"):
- # Widget is a submenu, make sure the item is in selected
- # state before we return
+ if self.is_menuitem():
+ # Make sure item is selected before we return to caller
utils.check(lambda: self.state_selected)
def set_text(self, text):