Verify exact ordinary review against native Approval Engine contract
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e387-534d-70e3-ad53-4ea05676db8c
This commit is contained in:
parent
21a4d28a0f
commit
815fbecbf0
1 changed files with 28 additions and 0 deletions
|
|
@ -66,3 +66,31 @@ def test_runtime_passes_only_configured_ids_to_human_client(tmp_path):
|
|||
data['ordinary_approval_ids'] = ['worker-apply']; path.write_text(json.dumps(data))
|
||||
runtime = Runtime.from_file(path)
|
||||
assert runtime.controller.approval_factory(session()).ordinary_approval_ids == frozenset({'worker-apply'})
|
||||
|
||||
|
||||
from test_approval_component import component
|
||||
from test_browser_auth import signing_key
|
||||
|
||||
|
||||
def test_real_engine_retains_ordinary_control_and_records_actual_human(component):
|
||||
from datetime import datetime, timedelta, timezone
|
||||
_, engine, transport, human, _ = component
|
||||
now = datetime.now(timezone.utc)
|
||||
engine.create({'actor':'synthetic-requester','principal':'factory-fixture',
|
||||
'action':'deliver','purpose':'ordinary-component-proof','target':{'resource':'fixture'}},
|
||||
{'not_before':(now-timedelta(seconds=1)).isoformat(),
|
||||
'expires_at':(now+timedelta(minutes=10)).isoformat()},
|
||||
human_control=False, approval_id='ordinary-fixture')
|
||||
strict = ApprovalHTTPClient('https://approval.test', human, transport=transport)
|
||||
with pytest.raises(ApprovalEngineError, match='invalid_approval_response'):
|
||||
strict.add_entry('ordinary-fixture')
|
||||
assert not engine.get('ordinary-fixture').entries
|
||||
admitted = ApprovalHTTPClient('https://approval.test', human, transport=transport,
|
||||
ordinary_approval_ids=['ordinary-fixture'])
|
||||
result = admitted.add_entry('ordinary-fixture')
|
||||
record = engine.get('ordinary-fixture').as_dict()
|
||||
assert result.status == 'approved' and record['binding']['human_control'] is False
|
||||
assert len(record['entries']) == 1
|
||||
assert record['entries'][0]['principal_type'] == 'human'
|
||||
assert record['entries'][0]['subject_id'] == human.subject
|
||||
assert not any(url.endswith('/consume') for _, url in transport.calls)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue