/ 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())