#!/usr/bin/env python """Custom tests runner script for tox and python3""" import os import random # noseq import subprocess import sys import unittest from time import sleep def unittest_discover(): """Explicit test suite creation""" loader = unittest.defaultTestLoader loader.sortTestMethodsUsing = lambda a, b: random.randint(-1, 1) return loader.discover('src.bitmessagekivy.tests') if __name__ == "__main__": with open("/proc/self/cgroup", "rt", encoding='ascii', errors='replace') as f: in_docker = "docker" in f.read() if in_docker: try: os.mkdir("../out") except FileExistsError: # noqa:F821 pass ffmpeg = subprocess.Popen([ # pylint: disable=consider-using-with "ffmpeg", "-y", "-nostdin", "-f", "x11grab", "-video_size", "vga", "-v", "quiet", "-nostats", "-draw_mouse", "0", "-i", os.environ['DISPLAY'], "-codec:v", "libvpx-vp9", "-lossless", "1", "-r", "60", "../out/test.webm" ]) sleep(2) # let ffmpeg start result = unittest.TextTestRunner(verbosity=2).run(unittest_discover()) if in_docker: ffmpeg.terminate() try: ffmpeg.wait(10) except subprocess.TimeoutExpired: ffmpeg.kill() sys.exit(not result.wasSuccessful())