#!/usr/bin/env python3 import atexit import os.path import subprocess import sys from test_storage import TestStorage from test_support import run_live_functional_tests import time DEBUG_BUILD = "target/debug/syncstorage" RELEASE_BUILD = "/app/bin/syncstorage" if __name__ == "__main__": # When run as a script, this file will execute the # functional tests against a live webserver. target_binary = None if os.path.exists(DEBUG_BUILD): target_binary = DEBUG_BUILD elif os.path.exists(RELEASE_BUILD): target_binary = RELEASE_BUILD else: raise RuntimeError( "Neither target/debug/syncstorage \ nor /app/bin/syncstorage were found." ) the_server_subprocess = subprocess.Popen( "SYNC_MASTER_SECRET=secret0 " + target_binary, shell=True ) # TODO we should change this to watch for a log message on startup # to know when to continue instead of sleeping for a fixed amount time.sleep(20) def stop_subprocess(): the_server_subprocess.terminate() the_server_subprocess.wait() atexit.register(stop_subprocess) res = run_live_functional_tests(TestStorage, sys.argv) sys.exit(res)