46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
#!/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", "720x1280",
|
|
"-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())
|
|
sleep(1)
|
|
if in_docker:
|
|
ffmpeg.terminate()
|
|
try:
|
|
ffmpeg.wait(10)
|
|
except subprocess.TimeoutExpired:
|
|
ffmpeg.kill()
|
|
sys.exit(not result.wasSuccessful())
|