import importlib
import hashlib
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.frame_ingress','app.stream_lifecycle','app.medium_preprocess','app.source_adapters.rtsp']:
    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_pose_batch_path.py','test_medium_preprocess.py','test_rtsp_source_adapter.py',
                'test_analysis_metrics.py','test_stream_lifecycle.py','test_identity_contracts.py',
                'test_native_metadata.py','test_pose_path.py','test_pose_nms.py']:
    suite.addTests(unittest.defaultTestLoader.discover('/tests',pattern=pattern))
r=unittest.TextTestRunner(verbosity=2).run(suite)
result=dict(success=r.wasSuccessful(),tests=r.testsRun,errors=len(r.errors),failures=len(r.failures))
Path('/evidence',sys.argv[1]+'.json').write_text(json.dumps(result))
print(json.dumps(result))
raise SystemExit(not result['success'])
