Make easier to run pytest on local X-server
authorAndrey Skvortsov <andrej.skvortzov@gmail.com>
Fri, 05 Oct 2018 13:48:54 +0300
changeset 2436 82bfc75bcd9d
parent 2435 925adaa2cd5c
child 2437 105c20fdeb19
Make easier to run pytest on local X-server
tests/tools/run_python_tests.sh
--- a/tests/tools/run_python_tests.sh	Fri Oct 05 13:11:28 2018 +0300
+++ b/tests/tools/run_python_tests.sh	Fri Oct 05 13:48:54 2018 +0300
@@ -1,28 +1,61 @@
 #!/bin/sh
 
+
+
 cleanup()
 {
-    find ./tests/tools -name '*.pyc' -delete
+    find $PYTEST_DIR -name '*.pyc' -delete
 }
 
-LC_ALL=ru_RU.utf-8
-
-export DISPLAY=:42
-Xvfb $DISPLAY -screen 0 1280x1024x24 &
-sleep 1
 
 
-cleanup
+print_help()
+{
+    echo "Usage: run_python_tests.sh [--on-local-xserver]"
+    echo ""
+    echo "--on-local-xserver"
+    echo "                all tests are run on local X-server. "
+    echo "                User can see test in action."
+    echo "                Any interaction (mouse, keyboard) should be avoided"
+    echo "                By default without arguments script runs pytest on virtual X serverf."
+    echo ""
 
-ret=0
-DELAY=400
-KILL_DELAY=$(($DELAY + 30))
-timeout -k $KILL_DELAY $DELAY pytest --timeout=10 ./tests/tools
-ret=$?
+    exit 1
+}
 
-cleanup
+main()
+{
+    LC_ALL=ru_RU.utf-8
+    PYTEST_DIR=./tests/tools
+
+    if [ ! -d $PYTEST_DIR ]; then
+	echo "Script should be run from top directory in repository"
+	exit 1;
+    fi
+
+    use_xvfb=0
+    if [ "$1" != "--on-local-xserver" ]; then
+	export DISPLAY=:42
+	use_xvfb=1
+	Xvfb $DISPLAY -screen 0 1280x1024x24 &
+	sleep 1
+    fi
 
 
-pkill -9 Xvfb
+    cleanup
 
-exit $ret
+    ret=0
+    DELAY=400
+    KILL_DELAY=$(($DELAY + 30))
+    timeout -k $KILL_DELAY $DELAY pytest --timeout=10 ./tests/tools
+    ret=$?
+
+    cleanup
+
+    [ $use_xvfb = 1 ] && pkill -9 Xvfb
+    exit $ret
+}
+
+
+[ "$1" = "--help" -o "$1" = "-h" ] && print_help
+main $@