gpt-image-2 multi-image + fix: tools need reasoning_effort none on gpt-5.6 (ggg mute bug)
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""Unit coverage for ENV-21 (tools + reasoning_effort, found live on ggg)."""
|
||||
|
||||
import unittest
|
||||
from unittest.mock import AsyncMock, Mock, patch
|
||||
|
||||
from fjerkroa_bot.openai_responder import OpenAIResponder
|
||||
|
||||
from .test_bdd_envelope import envelope
|
||||
|
||||
|
||||
def ok_result():
|
||||
message = Mock(content=envelope(answer="x", answer_needed=True), role="assistant", tool_calls=None, refusal=None)
|
||||
return Mock(choices=[Mock(message=message)], usage="usage")
|
||||
|
||||
|
||||
class TestToolsReasoningEffort(unittest.IsolatedAsyncioTestCase):
|
||||
async def chat_kwargs(self, with_tools):
|
||||
config = {"openai-token": "t", "model": "gpt-5.6-luna", "system": "s", "history-limit": 5, "enable-game-info": with_tools}
|
||||
responder = OpenAIResponder(config, "chat")
|
||||
if with_tools:
|
||||
responder.igdb = Mock()
|
||||
responder.igdb.get_openai_functions = Mock(return_value=[{"name": "search_games", "parameters": {}}])
|
||||
with patch("fjerkroa_bot.openai_responder.openai_chat", new_callable=AsyncMock) as chat_mock:
|
||||
chat_mock.return_value = ok_result()
|
||||
await responder.chat([{"role": "user", "content": "hi"}], 10)
|
||||
return chat_mock.await_args.kwargs
|
||||
|
||||
async def test_tools_carry_reasoning_effort_none(self):
|
||||
"""ENV-21: tools attached -> reasoning_effort 'none' rides along."""
|
||||
kwargs = await self.chat_kwargs(with_tools=True)
|
||||
self.assertIn("tools", kwargs)
|
||||
self.assertEqual(kwargs["reasoning_effort"], "none")
|
||||
|
||||
async def test_toolless_calls_untouched(self):
|
||||
"""ENV-21: without tools no reasoning_effort is sent."""
|
||||
kwargs = await self.chat_kwargs(with_tools=False)
|
||||
self.assertNotIn("tools", kwargs)
|
||||
self.assertNotIn("reasoning_effort", kwargs)
|
||||
Reference in New Issue
Block a user