import hashlib
import importlib
import json
from pathlib import Path
import sys
import unittest

root = '/opt/contextra/' if 'image' in sys.argv[1] else '/source/'
for name in ('app.analysis_metrics', 'app.multi_pipeline', 'app.det_result_path'):
    file = Path(importlib.import_module(name).__file__)
    assert str(file).startswith(root)
    print(name, str(file), hashlib.sha256(file.read_bytes()).hexdigest())
suite = unittest.TestSuite()
for pattern in ('test_collector_metrics.py', 'test_pose_batch_path.py', 'test_analysis_metrics.py'):
    suite.addTests(unittest.defaultTestLoader.discover('/tests', pattern=pattern))
sys.path.insert(0, '/tests')
suite.addTests(unittest.defaultTestLoader.loadTestsFromName('test_det_result_path.ResultPathTest'))
suite.addTests(unittest.defaultTestLoader.loadTestsFromName('test_tracking_disabled.DisabledTrackingTest'))
result = unittest.TextTestRunner(verbosity=2).run(suite)
summary = dict(success=result.wasSuccessful(), tests=result.testsRun,
               errors=len(result.errors), failures=len(result.failures))
Path('/evidence', sys.argv[1] + '.json').write_text(json.dumps(summary))
print(json.dumps(summary))
raise SystemExit(not result.wasSuccessful())
