[Libreoffice-commits] core.git: uitest/uitest

Markus Mohrhard markus.mohrhard at googlemail.com
Sun Feb 18 20:50:09 UTC 2018


 uitest/uitest/test.py |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

New commits:
commit fb4d5885f3c8d00ae528ddf57b2abaa4aabfbcf3
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Feb 18 01:06:13 2018 +0100

    uitest: add timeout for blocking actions
    
    Change-Id: I796d4ea0034ddae0427418f0d53a00c3dfa66871
    Reviewed-on: https://gerrit.libreoffice.org/49939
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/uitest/uitest/test.py b/uitest/uitest/test.py
index 0318dfa64d81..f179807c5b0f 100644
--- a/uitest/uitest/test.py
+++ b/uitest/uitest/test.py
@@ -178,7 +178,7 @@ class UITest(object):
                 time.sleep(DEFAULT_SLEEP)
 
     def execute_blocking_action(self, action, dialog_element=None,
-            args=(), dialog_handler=None):
+            args=(), dialog_handler=None, dialog_timeout=30):
         """Executes an action which blocks while a dialog is shown.
 
         Click a button or perform some other action on the dialog when it
@@ -192,6 +192,8 @@ class UITest(object):
             args(tuple, optional): The arguments to be passed to `action`
             dialog_handler(callable, optional): Will be called when the dialog
                 is shown, with the dialog object passed as a parameter.
+            timeout(optional): The maximum time the thread will wait for the
+                dialog actions to happen. None means wait forever.
         """
 
         thread = threading.Thread(target=action, args=args)
@@ -207,7 +209,9 @@ class UITest(object):
                         xUIElement.executeAction("CLICK", tuple())
                     if dialog_handler:
                         dialog_handler(xDlg)
-                    thread.join()
+                    thread.join(dialog_timeout)
+                    if thread.isAlive():
+                        raise DialogNotClosedException()
                     return
 
                 time_ += DEFAULT_SLEEP


More information about the Libreoffice-commits mailing list