"""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()