uitest: add a way to have sleeps in some test runs

Now adding a -d or --debug to the command line options will enable the
sleeps in the uitest.debug part. This makes it much easier to debug a
test in the visual mode.

Only remaining part is now to add a test runner into the build system
that makes use of that mode.

Change-Id: I03d55b10f06dd12a63a8d87c135967901bef0fba
diff --git a/uitest/demo_ui/char_dialog.py b/uitest/demo_ui/char_dialog.py
index 903b2b1..06c17bb 100644
--- a/uitest/demo_ui/char_dialog.py
+++ b/uitest/demo_ui/char_dialog.py
@@ -10,7 +10,7 @@ from uitest_helper import UITest
from helper import mkPropertyValues
from uitest.framework import UITestCase

import time
from uitest.debug import sleep

class CharDialogText(UITestCase):

@@ -21,13 +21,13 @@ class CharDialogText(UITestCase):
        xCharDialog = self.xUITest.getTopFocusWindow()
        print(xCharDialog.getChildren())

        time.sleep(5)
        sleep(5)

        xCharSet = xCharDialog.getChild("showcharset")

        xCharSet.executeAction("SELECT", mkPropertyValues({"COLUMN": "2", "ROW": "2"}))

        time.sleep(5)
        sleep(5)

        xCancelBtn = xCharDialog.getChild("cancel")
        xCancelBtn.executeAction("CLICK", tuple())
diff --git a/uitest/test_main.py b/uitest/test_main.py
index c755336851..97afeb4 100644
--- a/uitest/test_main.py
+++ b/uitest/test_main.py
@@ -13,13 +13,15 @@ import calc_tests
import importlib
import importlib.machinery

import uitest.config

from uitest.framework import UITestCase

from libreoffice.connection import OfficeConnection

def parseArgs(argv):
    (optlist,args) = getopt.getopt(argv[1:], "hr",
            ["help", "soffice=", "userdir=", "dir=", "file="])
    (optlist,args) = getopt.getopt(argv[1:], "hdr",
            ["help", "debug", "soffice=", "userdir=", "dir=", "file="])
    return (dict(optlist), args)

def usage():
@@ -101,6 +103,9 @@ if __name__ == '__main__':
        usage()
        sys.exit()

    if "-d" in opts or "--debug" in opts:
        uitest.config.use_sleep = True

    result = unittest.TextTestRunner(verbosity=2).run(test_suite)
    print("Tests run: %d" % result.testsRun)
    print("Tests failed: %d" % len(result.failures))
diff --git a/uitest/uitest/config.py b/uitest/uitest/config.py
new file mode 100644
index 0000000..fa13274
--- /dev/null
+++ b/uitest/uitest/config.py
@@ -0,0 +1,10 @@
# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#

use_sleep = False

# vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/uitest/uitest/debug.py b/uitest/uitest/debug.py
new file mode 100644
index 0000000..8af6d8a
--- /dev/null
+++ b/uitest/uitest/debug.py
@@ -0,0 +1,16 @@
# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#

import uitest.config

import time

def sleep(seconds):
    if uitest.config.use_sleep:
        time.sleep(seconds)

# vim:set shiftwidth=4 softtabstop=4 expandtab: */