PepPA / tests /test_provider_settings.py
pranamanam's picture
Upload 97 files
98bde72 verified
Raw
History Blame Contribute Delete
2.12 kB
"""Check requested reasoning settings at provider boundaries with local mocks."""
import unittest
from types import SimpleNamespace
from unittest.mock import Mock, patch
from peppa.controllers import APIController, AnthropicController
from peppa.schema import Decision
class ProviderSettingsTests(unittest.TestCase):
def result_text(self):
return Decision(tool='stop',arguments={},hypothesis='fixture',evidence_ids=[],decision_summary='fixture',expected_observation='',stop=True).model_dump_json()
def test_astra_max_request_and_record(self):
c=APIController.__new__(APIController)
c.model='gpt-6-astra';c.provider='responses';c.reasoning_effort='max'
c.max_output_tokens=64000;c.input_bytes=14000;c.client=Mock()
c.client.responses.create.return_value=SimpleNamespace(output_text=self.result_text(),model=c.model,id='local-mock',usage=None)
with patch('peppa.controllers.request_context',return_value=('system','input')):
_,record=c.next({}, {})
args=c.client.responses.create.call_args.kwargs
self.assertEqual(args['reasoning'],{'effort':'max'})
self.assertEqual(args['max_output_tokens'],64000)
self.assertEqual(record['reasoning_effort'],'max')
def test_opus_max_request_and_record(self):
c=AnthropicController.__new__(AnthropicController)
c.model='claude-opus-5';c.effort='max';c.max_output_tokens=64000;c.input_bytes=14000;c.client=Mock()
c.client.messages.create.return_value=SimpleNamespace(content=[SimpleNamespace(type='text',text=self.result_text())],model=c.model,id='local-mock',usage=SimpleNamespace(model_dump=lambda:{}))
with patch('peppa.controllers.request_context',return_value=('system','input')):
_,record=c.next({}, {})
args=c.client.messages.create.call_args.kwargs
self.assertEqual(args['output_config'],{'effort':'max'})
self.assertEqual(args['thinking'],{'type':'adaptive'})
self.assertEqual(args['max_tokens'],64000)
self.assertEqual(record['effort'],'max')
if __name__=='__main__':unittest.main()