Isolate client reasoning normalization in API compatibility adapter

This commit is contained in:
Mikei386
2026-09-29 10:11:02 +02:00
parent f337ade65a
commit dad67acad8
8 changed files with 62 additions and 12 deletions
+16
View File
@@ -0,0 +1,16 @@
import unittest
from api_compat import normalize_chat,CompatibilityError
class CompatibilityTests(unittest.TestCase):
def test_levels_and_alias_without_mutation(self):
for value in ['none','minimal','low','medium','high','xhigh','max','ultra']:
request={'model':'any','reasoning_effort':value};body,info=normalize_chat(request)
self.assertEqual(request['reasoning_effort'],value)
self.assertEqual(body['reasoning_effort'],'max' if value=='ultra' else value)
self.assertEqual(info['requested'],value)
def test_unset_and_null_do_not_invent_defaults(self):
for request in [{},{'reasoning_effort':None}]:
self.assertEqual(normalize_chat(request),({},{}))
def test_invalid_inputs(self):
for value in [True,1,{},[], '', 'MAX', 'x\r\ny']:
with self.assertRaises(CompatibilityError):normalize_chat({'reasoning_effort':value})
with self.assertRaises(CompatibilityError):normalize_chat({'unknown':1})