Prepare no-network trial plans for native recipient review

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a09cbc-910e-77a0-b336-3130194350b3
This commit is contained in:
tegwick 2026-09-14 02:38:37 +02:00
parent 5f39eb7818
commit 33da93cd66
9 changed files with 709 additions and 4 deletions

View file

@ -6,7 +6,7 @@ import tempfile
import unittest
from unittest.mock import patch
from intelligence_radar.trials import budget, execute, verify
from intelligence_radar.trials import budget, execute, plan, verify
class TrialTests(unittest.TestCase):
@ -68,3 +68,33 @@ class TrialTests(unittest.TestCase):
with self.assertRaisesRegex(ValueError, 'campaign halted'):
execute(self.root, self.config, case, self.model,
opener=lambda *a, **k: self.fail('halted campaign made a call'))
def test_plan_needs_no_key_and_writes_nothing(self):
config = dict(self.config, models=[self.model])
with patch.dict(os.environ, {}, clear=True):
result = plan(self.root, config, {'cases': [self.case]})
self.assertFalse(result['execution_authorized'])
self.assertEqual(result['budget_blockers'], [])
self.assertEqual(list(self.root.iterdir()), [])
executed = execute(self.root, config, self.case, self.model, opener=self.response)
self.assertEqual(result['trials'][0]['run_id'], executed['run_id'])
after = plan(self.root, config, {'cases': [self.case]})
self.assertEqual(after['new_reservations_usd'], '0')
self.assertEqual(after['planned_committed_usd'], '0.001')
def test_plan_counts_pending_once_and_exposes_blocker(self):
def fail(*args, **kwargs):
raise TimeoutError('timeout')
with self.assertRaises(TimeoutError):
execute(self.root, self.config, self.case, self.model, opener=fail)
result = plan(self.root, dict(self.config, models=[self.model]), {'cases': [self.case]})
self.assertEqual(result['budget_blockers'], ['unresolved billing reservations'])
self.assertEqual(result['new_reservations_usd'], '0')
self.assertEqual(result['planned_committed_usd'], budget(self.root, 'test')['pending_usd'])
def test_plan_refuses_duplicates_and_marks_over_budget(self):
config = dict(self.config, models=[self.model], budget_usd='0')
with self.assertRaisesRegex(ValueError, 'unique'):
plan(self.root, config, {'cases': [self.case, self.case]})
result = plan(self.root, config, {'cases': [self.case]})
self.assertIn('planned reservations exceed campaign budget', result['budget_blockers'])