devils-agent / tests /test_registry.py
devildasdf's picture
Upload experimental BAIM code, research checkpoints and measured evaluations
795f737 verified
Raw
History Blame Contribute Delete
1.98 kB
from pathlib import Path
import tempfile
import unittest
from baim.registry import Registry,file_hash
class RegistryTests(unittest.TestCase):
def test_gates_integrity_and_rollback(self):
with tempfile.TemporaryDirectory() as temp:
root = Path(temp)
source = root/'checkpoint'
source.mkdir()
(source/'model.safetensors').write_bytes(b'unit-test-fixture-not-a-model')
registry = Registry(root/'registry')
try:
registry.register('v000',source,{})
with self.assertRaisesRegex(ValueError,'MISSING_EVIDENCE'):
registry.promote('v000')
self.assertIsNone(registry.champion)
metrics = dict(suite_sha256='a'*64,artifact_sha256=file_hash(source/'model.safetensors'),
task_success_rate=.9,out_of_domain_success=.9,recovery_rate=.9,unsafe_action_rate=0,
premature_finish_rate=0,loop_rate=0,p95_action_ms=1000,peak_service_rss_bytes=1024**3,
target_hardware='linux-epyc9354p-2vcpu',evaluator_version='unit-test-only')
registry.register('v001',source,metrics,parent='v000')
registry.promote('v001')
self.assertEqual(registry.champion,'v001')
registry.register('v002',source,{**metrics,'p95_action_ms':900},parent='v001')
registry.promote('v002')
registry.rollback('v001')
self.assertEqual(registry.champion,'v001')
(root/'registry/v002/model.safetensors').write_bytes(b'changed')
with self.assertRaisesRegex(ValueError,'integrity'):
registry.promote('v002')
self.assertEqual(registry.champion,'v001')
with self.assertRaisesRegex(ValueError,'immutable'):
registry.register('v001',source,metrics)
finally:
registry.close()