/ tests-kivy.py
tests-kivy.py
1 #!/usr/bin/env python 2 """Custom tests runner script for tox and python3""" 3 import os 4 import random # noseq 5 import subprocess 6 import sys 7 import unittest 8 9 from time import sleep 10 11 12 def unittest_discover(): 13 """Explicit test suite creation""" 14 loader = unittest.defaultTestLoader 15 loader.sortTestMethodsUsing = lambda a, b: random.randint(-1, 1) 16 return loader.discover('src.bitmessagekivy.tests') 17 18 19 if __name__ == "__main__": 20 in_docker = os.path.exists("/.dockerenv") 21 22 if in_docker: 23 try: 24 os.mkdir("../out") 25 except FileExistsError: # noqa:F821 26 pass 27 28 ffmpeg = subprocess.Popen([ # pylint: disable=consider-using-with 29 "ffmpeg", "-y", "-nostdin", "-f", "x11grab", "-video_size", "720x1280", 30 "-v", "quiet", "-nostats", 31 "-draw_mouse", "0", "-i", os.environ['DISPLAY'], 32 "-codec:v", "libvpx-vp9", "-lossless", "1", "-r", "60", 33 "../out/test.webm" 34 ]) 35 sleep(2) # let ffmpeg start 36 result = unittest.TextTestRunner(verbosity=2).run(unittest_discover()) 37 sleep(1) 38 if in_docker: 39 ffmpeg.terminate() 40 try: 41 ffmpeg.wait(10) 42 except subprocess.TimeoutExpired: 43 ffmpeg.kill() 44 sys.exit(not result.wasSuccessful())