import contextlib
import json
import os
from pathlib import Path
import unittest

os.umask(0o077)
root = Path('/evidence')
label = os.environ.get('VERIFY_LABEL', 'tests')
patterns = ('test_intrusion.py', 'test_intrusion_connection.py', 'test_det_result_path.py',
            'test_tracking_empty_update.py', 'test_metadata_render_time.py',
            'test_async_restart.py', 'test_receiver_return.py')
with (root/(label+'.log')).open('x') as log, contextlib.redirect_stdout(log), contextlib.redirect_stderr(log):
    suite = unittest.TestSuite()
    for pattern in patterns:
        suite.addTests(unittest.defaultTestLoader.discover('/source/tests', pattern=pattern))
    result = unittest.TextTestRunner(stream=log, verbosity=2).run(suite)
summary = dict(tests=result.testsRun, errors=len(result.errors), failures=len(result.failures),
               patterns=patterns, models=0, runtime_windows=0)
(root/(label+'-verify.json')).write_text(json.dumps(summary, indent=2))
print(json.dumps(summary))
raise SystemExit(not result.wasSuccessful())
